Espresso

您可以使用 Espresso 編寫簡潔、美觀且可靠的 Android UI 測試。

以下程式碼片段為 Espresso 測試的範例:

Kotlin

@Test
fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
}

Java

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

核心 API 不僅小型、可預測、容易學習,且仍在使用 。Espresso 會測試狀態的期望、互動情形和斷言 不會幹擾樣板內容、自訂基礎架構 或雜亂的詳細實作細節

Espresso 測試的執行速度非常快!讓你在等待、同步、睡眠和睡眠 對應用程式進行操作及斷言時,系統會對背景資料進行輪詢 也就是 UI

目標對象

Espresso 是專為開發人員打造,他們認為自動化測試是指 是開發生命週期中不可或缺的一環雖然可用於黑箱作業 測試時,如果能夠熟悉 Espresso 的 測試中的程式碼集

同步處理功能

每次測試叫用時 onView()、 Espresso 會等待執行對應的 UI 操作或斷言,直到 符合下列條件:

  • 訊息佇列沒有任何 Espresso 必須立即顯示的訊息 上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作
  • 目前沒有執行中的「AsyncTask」執行個體 或稱做工作
  • 所有由開發人員定義 閒置資源處於閒置狀態。

執行這些檢查後,Espresso 大幅提高 一次只能執行一個 UI 操作或斷言。這項功能 ,取得更可靠且可靠的測試結果。

套件

  • espresso-core - 包含核心和基本 View 比對器、動作和 斷言。詳情請見 基本資訊食譜
  • espresso-web:包含 WebView 支援的資源。
  • espresso-idling-resource: Espresso 的背景工作同步處理機制。
  • espresso-contrib - 含有 DatePicker 的外部貢獻內容, RecyclerViewDrawer 動作、無障礙功能檢查和 CountingIdlingResource
  • espresso-intents: 用於驗證和虛設常式測試用的擴充功能。
  • espresso-remote - Espresso 多程序功能的位置。

如要進一步瞭解最新版本,請參閱 版本資訊

其他資源

如要進一步瞭解如何在 Android 測試中使用 Espresso,請參閱 資源。

範例