問題タブ [android-espresso]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1186 参照

android - Use Host GPU が有効になっていると Espresso Test がフリーズする

スライド メニューをテストする一連の Espresso テストがあります。Use Host GPU がオンになっている場合、ほとんどのテストは失敗しますが、無効になっている場合は失敗しません。アニメーションを無効にしましたが、ウィンドウがスライドして開いているのがまだ見えるので、どこかで設定が欠けているのではないかと思います。Android 4.4.2 をテストし、HAXM​​ を使用しています。このテストが失敗するのはなぜですか?

テストの一例を次に示します (すべて同じ構造を持っています)。

Use Host GPU をチェックせずにエミュレーターを起動すると、テストは問題なくパスします。Use Host GPU が有効になっている場合、最初のテスト程度は合格し、残りは次のように失敗します。

https://code.google.com/p/android-test-kit/wiki/Espresso#Getting_Startedで説明されているように、エミュレーターでアニメーションを無効にしようとしましたが、引き出しがスライドして開閉するのを見ることができます。

0 投票する
5 に答える
5425 参照

android - Retrofit ネットワーク リクエストを使用するときに IdlingResource を使用して Android UI をテストする方法

Retrofitを使用してネットワーク呼び出しを開始する UI でアクションを実行する統合テストを作成しています。

を実装する必要があることはわかってCountingIdlingResourceいますが、それを正しい方法で実行したいと考えています (すでに実行されている場合は、車輪を再発明したくありません)。

IdlingResourceアプリのEspressoテスト スイートに、ネットワーク リクエストの実行中に待機する機能を実装した人はいますか?

詳細はこちら

0 投票する
1 に答える
1075 参照

android - Android のアップグレード テストを自動化する方法

Android の自動化にエスプレッソを使用しており、これにはアップグレード テストが含まれます

アップグレード テストでは、次の 3 つの手順を実行する必要があります。

  1. 古いバージョンでいくつかのアクションを実行して、いくつかのデータを準備します
  2. 新しいバージョンへのアップグレード (カバー インストール)
  3. 古いバージョンで保存されたデータが正しく保持され、アップグレード後に他の問題がないことを確認します。

現在、私たちは非常に不器用な方法でそれを行っています:

テスト内で新しいバージョンをインストールできるかどうか (およびその方法) がわからないため、特定のバージョンからのアップグレード テストを前/後の 2 つの部分に分割します。

しかし、この adb コマンドによる 3 ステップのテストはばかげているように見え、junit レポートを簡単に取得することはできません。

Android のアップグレード テストを実行するためのより簡単な方法を知っている人はいますか?それとも、私たちが間違っていることを指摘してもらえますか?

Espresso に限らず、他のフレームワークを使用している場合、どのようにアップグレード テストを行うのですか?

前もって感謝します。

0 投票する
4 に答える
12268 参照

android - Android の Espresso 機能テストを行うときに Dagger にモック オブジェクトを挿入させる

DI の概念は完全に理にかなっているからです。DI の優れた「副産物」の 1 つは (Jake Wharton がプレゼンテーションの 1 つに述べたように)、テスト容易性です。

だから今、私は基本的に Espresso を使用していくつかの機能テストを行っており、ダミー/モック データをアプリケーションに挿入し、アクティビティにそれらを表示できるようにしたいと考えています。これは DI の最大の利点の 1 つであるため、比較的簡単な質問であると思います。しかし、なぜか頭が回らないようです。どんな助けでも大歓迎です。これが私がこれまでに持っているものです(現在の設定を反映する例を書きました):

これらは私の短剣モジュールです:

私のエスプレッソ テストでは、次のようなモック モジュールを挿入しようとしています。

これはまったく機能していません。私の Espresso テストは実行されますが、TestNavigationModule は完全に無視されます... arr... :(

私は何を間違っていますか?Espresso でモジュールをモックするより良い方法はありますか? Robolectric、Mockito などが使用されている例を検索して見ました。しかし、純粋な Espresso テストが必要なだけで、モジュールをモック モジュールと交換する必要があります。どうすればいいですか?

編集:

そこで、静的テスト モジュール リスト定義を作成し、null をチェックしてから Application クラスに追加する @ user3399328 アプローチを採用しました。ただし、クラスのテスト注入バージョンをまだ取得していません。しかし、私のエスプレッソライフサイクルではなく、短剣テストモジュールの定義に問題がある可能性があります。私が仮定している理由は、デバッグ ステートメントを追加し、静的テスト モジュールがアプリケーション クラスへの挿入時に空ではないことを発見したためです。私が間違っている可能性があることの方向性を教えてください。私の定義のコードスニペットは次のとおりです。

私のアプリケーション:

モジュール:

私のテストクラス内の変更されたテストモジュール:

0 投票する
2 に答える
1452 参照

android - ホーム画面ウィジェットをテストするための最良の方法

Androidホーム画面ウィジェットをテストするための最良の方法は何ですか? サンプルコードを見つけるのは非常に困難です:/そのテストをサポートするフレームワークは何ですか?

  1. エスプレッソ
  2. ロボティウム
  3. 他の
0 投票する
3 に答える
4226 参照

android - バックグラウンドに送信した後、アクティビティへのアクセスを回復する方法

Espresso を使用して、アクティビティをバックグラウンドに送信し、ホーム ボタンを使用してテストし、フォアグラウンドで再び起動していくつかのチェックを行います。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);例外によって提案されたもの を使用する必要がありましたが、それとは別に、ランチャー アクティビティとして開始するか、または を使用してテストしましFLAG_ACTIVITY_REORDER_TO_FRONTたが、ビューは表示されません。テストに合格したにもかかわらず。

0 投票する
1 に答える
1469 参照

android - カスタム リソースと同期する Android Espresso

Espresso を使用して Web 通話をテストしたいと考えています。AsyncTask を使用せずにこれを機能させることができるかどうかを確認するために、小さなテスト アプリを作成しました。データが返されると、TextView は呼び出しが成功したかどうかをユーザーに通知します。新しいスレッドで Web 呼び出しを行っています。

私のテストでは、Web 要求が満たされるまでテストを待機させるパターンとしてAdvancedSynchronizationTestに従ってみました。ただし、私の実装は機能していないようです。私の理解では、コールバックがメイン アクティビティに返される前に、オーバーライドしているメソッドが終了しています。その場合、間違ったクラスを上書きしています。また、ランナブル自体をオーバーライドしようとしましたが (以下の例を参照)、UI の更新を単にブール値を設定するように変更しましたが、結果は変わりませんでした。明らかに、Espresso は別のスレッドを使用することを好みませんが、スレッドが完了するまで待機する必要があることを認識しないのはなぜですか? AsyncTask を使用しない代替手段は何でしょうか?

プロジェクト全体は、https ://github.com/bqmackay/EspressoCustomThreadingResourceExample で確認できます。

問題のコードは次のとおりです。

MainActivityTest

ダウンロードを助ける人

主な活動

0 投票する
2 に答える
24571 参照

automated-tests - エスプレッソを使用してテキストビューからテキストを取得する方法

LinearLayout の textview に表示されるテキスト文字列を取得したい。エスプレッソはそれをすることができますか?そうでない場合、それを行う他の方法はありますか、それともエスプレッソ テスト ケースで Android API を使用できますか? API 17 18 以降、espresso 1.1 (最新のものである必要があります) を使用しています。私はこれについて手がかりがありません。ありがとう。

0 投票する
2 に答える
1962 参照

android - Android インストルメンテーション テストで NoClassDefFoundError を返すダガー コードが、通常のアプリケーションでは機能する

Android アプリケーションで Dagger を使用しています。アプリケーションで動作していますが、インストルメンテーション テストを実行すると、NoClassDefFoundError が発生します。

Gradle と Espresso を使用しています。これはプロガードなしで起こっています。

「Module$$ModuleAdapter」が読み込まれるため、これは奇妙ですが、「Module$$ModuleAdapter$EndpointProvidesAdapter」は読み込まれません。

デバイスから APK を取り出し、dexdump を使用して、クラスが実際に APK にあることを確認しました (「Module$$ModuleAdapter$EndpointProvidesAdapter」)。

これを引き起こしている可能性のあるアイデアはありますか?