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 は小規模で予測可能で、容易に習得できます。しかも、オープンな API を カスタマイズが可能です。Espresso で想定、インタラクション、アサーションをテストする ボイラープレート コンテンツやカスタム インフラストラクチャ、 実装の詳細が煩雑になりがちです

Espresso により、テストに要する時間を短縮できます。待ち時間、同期、スリープなどの 実行とポーリングが同時に行われる間、アプリケーションに対して UI を表示します。

ターゲット ユーザー

Espresso は、自動テストとは何かというと、 不可欠な部分です。ブラックボックス化に使用できる一方で Espresso の機能を最大限に活用するには、 テスト対象のコードベースです。

同期機能

テストが呼び出されるたびに onView() Espresso は、対応する UI アクションやアサーションを 次の同期条件が満たされています。

  • メッセージ キューに、Espresso が直ちに実行する必要があるメッセージがない プロセスです
  • 現在実行中の AsyncTask のインスタンスはありません できます。
  • デベロッパー定義の アイドリング リソースがアイドル状態である。

Espresso がこれらのチェックを行うことにより、 一度に実行できる UI アクションまたはアサーションは 1 つのみです。この機能 信頼性の高いテスト結果が得られます

パッケージ

  • espresso-core - コアおよび基本的な View マッチャー、アクション、 記述できます。詳しくは、 基本レシピをご覧ください。
  • espresso-web - WebView サポートのリソースが含まれています。
  • espresso-idling-resource - Espresso のバックグラウンド ジョブとの同期メカニズム
  • espresso-contrib - 「DatePicker」を含む外部投稿 RecyclerView および Drawer アクション、ユーザー補助機能チェック、 CountingIdlingResource
  • espresso-intents - 密閉型テスト用のインテントの検証とスタブを行うための拡張機能。
  • espresso-remote - Espresso のマルチプロセス機能が含まれています。

最新バージョンの詳細については、 リリースノートをご覧ください。

参考情報

Android テストでの Espresso の使用について詳しくは、 ご覧ください

サンプル