問題タブ [android-testing]

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 投票する
14 に答える
47474 参照

android - 複数のアクティビティにまたがる Android アプリケーションをどのようにテストしますか?

多くのアクティビティにまたがる多くの画面とワークフローで構成される複雑な Android アプリケーションを構築しています。私たちのワークフローは、銀行の ATM マシンで見られるものに似ています。たとえば、ユーザーの選択に基づいて他のアクティビティに移行できるActivityメイン メニューに移行するログインがあります。Activity

非常に多くのワークフローがあるため、ワークフローをエンドツーエンドでテストできるように、複数のアクティビティにまたがる自動テストを作成する必要があります。たとえば、ATM の例を使用して、有効な PIN を入力し、メイン メニューに移動することを確認し、現金の引き出しを選択し、現金の引き出し画面にいることを確認します。メインメニューに戻るか、「ログアウト」します。

ActivityInstrumentationTestCase2Android (例: ) とPositronに付属するテスト API をいじりましたが、どちらも単一の の範囲を超えてテストすることはできないようですActivity。これらのツールには、いくつかの単体テスト用のユーティリティがいくつかありますが、勝っています。複数のアクティビティにまたがるテスト シナリオのニーズを満たしていません。

xUnit フレームワーク、スクリプト作成、GUI レコーダー/再生などにオープンであり、アドバイスをいただければ幸いです。

0 投票する
6 に答える
25686 参照

android - Android での GPS のテスト

Androidで GPS アプリケーションをどのようにテストしますか? Android エミュレーターを使用してテストできますか?

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

android - Android でのデータベースのテスト: ProviderTestCase2 または RenamingDelegatingContext?

一部のクラス内で android.database パッケージを使用してデータベースへのアクセスを実装しましたSQLiteOpenHelper(パターン DAO を使用)。

を使用してこれらのクラスのいくつかの junit テストを作成しましたAndroidTestCaseが、これにより、テストでアプリケーションと同じデータベースが使用されます。

ProviderTestCase2orRenamingDelegatingContextを使用してデータベースを個別にテストできることを読みました。残念ながら、ProviderTestCase2/RenamingDelegatingContext を使用してデータベースをテストする方法を示す素晴らしいチュートリアル/例を見つけることができませんでした。

誰か私にどこかを教えてくれますか、ヒントをくれますか、データベース テスト用のコードを共有できますか?!

Cheerrrsss!! ジョルジオ

0 投票する
7 に答える
15642 参照

android - Android で最適に動作するライブラリ/フレームワークをモックしますか?

サードパーティ ライブラリ (Twitter4j) を使用して Android アプリケーションを開発しています。JUnit と機能テストでこれらのオブジェクト (私が作成したオブジェクトも) をモックできるようにしたいと考えています。

いくつかのモッキング ライブラリを使用した良い経験があり、それらを推奨できますか?

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

android - AndroidTestCaseからアクティビティを呼び出す

テスト対象のアクティビティとは別のアクティビティを実行する必要があるAndroidテストケースを作成しています(テストのためではなく、コンテンツリゾルバーにアクセスしてテレフォニー設定を変更できるようにするためです)。

テストケースから、または別の方法でアクティビティを開始することは可能ですか。

アクティビティのテストに使用されるAndroidTestCaseクラスを認識しています。テストで使用していますが、ContentResolverを使用してテレフォニー設定を変更してから、テスト対象のアクティビティの反応をテストする必要があるため、変更するには別のアプリケーションコンポーネントが必要です。これらの設定。

注:複数のアクティビティテスト(ActivityManagerが必要)の背後にある複雑さを解放しますが、onCreateメソッドにロジックを含めることができるように、そのメソッドを使用して設定を変更するだけです。

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

android - テスト プロジェクトへのテスト ファイルの保存

XML ファイルを使用するいくつかのテストを作成しました。私は2つのプロジェクトを持っています。1つはコードで、もう1つはテストです。この XML ファイル (テスト中に使用されるデータが含まれています) をテスト プロジェクトに保存したいと考えています。しかし、src プロジェクトのファイルだけがデバイスにロードされているように見えるため、それは不可能です。この問題を解決する方法を知っている人はいますか?

0 投票する
0 に答える
1253 参照

android - AndroidTestCase でカスタム コンテキストを設定する

ContentProvider特定の時点でのみアイテムを更新するカスタムをテストしようとしています。

ブランチをテストするにはshouldUpdate、時間を元に戻し、アプリケーションでカスタムの日付を設定する必要があります。をスタブ化できなかったSystem.currentTimeMillis()ので、Application オブジェクトにメソッドを入れて、このようにしようとしてsetContext()AndroidTestCaseます。

}

ただし、プロバイダーを呼び出すgetApplicationContext().currentTimeMillis()と、メソッドの実際の実装が返されます。これは、でSystem.currentTimeMillis()設定したカスタム日時ではありませんAndroidTestCase

私は何を間違っていますか?

ps ProviderTestCase2 については知っていますが、プロバイダーの SharedPreferences にもアクセスしているため、ProviderTestCase2 は null を返します。そのため、私は AndroidTestCase を使用しています。

0 投票する
0 に答える
345 参照

android - ホームアプリケーションをテストするには?

「ホーム」アプリケーションをテストする可能性はありますか?

テスト結果として、次のようになります。

プロセスを手動で強制終了すると、自動的に再起動されます。テスト アプリケーションがアプリケーションにアタッチできないのは、それが原因Homeでしょうか。

0 投票する
3 に答える
6767 参照

android - ライブラリ プロジェクトで ant を使用した Android 単体テスト

また、最新の Android SDK ツールは、リンクされたライブラリ プロジェクトを含むアプリケーションのテストをまだ適切にサポートしていないようです。

次の設定のプロジェクトがあります。

TestLib (android ライブラリ プロジェクト) ← TestMain (android プロジェクト) ← TestMainTest (android 単体テスト プロジェクト)

これらすべてのプロジェクトを Eclipse で作成し、 etandroid update (test-/lib-)project ...を生成するために使用しました。build.xmlアル。

問題は、TestMain (InheritAddition.java私の例では) に TestLib ( Addition.java) のクラスから継承するクラスがあり、単体テスト () でこのクラスを参照したい場合に発生しますInheritAdditionTest.java

TestLib

TestMain

TestMainTest

コマンド ラインでビルドすると、結果は次のようになります。

私は日食のために働くいくつかの回避策を見つけました:

テストされたプロジェクトの libs ディレクトリに jar がある場合、「ant create test-project」を使用して作成された Android テスト プロジェクトをビルドして実行することはできません

これでうまくいきますが、ANT で動作するソリューションを探しています (より正確には、両方で同時に動作するソリューションを探しています)。

サンプル プロジェクトはライブラリ jar を使用しないため、文書化されたアプローチ (build.xml を変更してメイン プロジェクトの jar をクラス パスに含めることによる) はここでは適用できません (また、この特定の問題は SDK ツールで修正されていると思います)。 r16)。

to の依存関係をどうにかしTestMainTestTestLib( を変更してproject.properties) 削除し、代わりにビルド スクリプトをハックして、それらのビルドされた jar をクラス パスに配置します (したがって、-compileターゲットを変更するものに置き換えます。のクラスパスjavac)。私は android SDK ツールチェーンの変更に対応しようとしてきた長い歴史があるため、これは、a) かなり複雑であり、b)build.xmlツールチェーンが変更されるたびに (かなり頻繁に) を常に変更する必要があるため、実際には私のお気に入りのオプションではありません。

そのため、スレッジハンマーを使用せずにそのようなセットアップを機能させる方法のアイデアを探しています。完全に明らかな何かが欠けているのかもしれませんが、私にとってこのユースケースはかなり標準的であり、なぜこれがすぐにサポートされないのか理解するのに苦労しています.

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

java - Robolectric の SharedPreferences のテスト データの提供

Robolectric を使い始めたばかりですが、私が必要としているものはほとんどないようです。ただし、SharedPreferences の使用に関しては、ちょっとした障害にぶつかりました。

私は2つのテストケースを持っています

  1. アクティビティには新しい/空の sharedPreferences が必要です

  2. アクティビティは、すでに一部のデータが含まれている sharedPreferences を想定しています

テスト ケース 1 の場合、テストは期待どおりに合格しているため、すべて問題ありません:)

ただし、テスト ケース 2 では、Robolectric に偽のデータを提供する適切な方法を見つけられないように思われるため、アクティビティはこの偽のデータにアクセスできます。

非常に一般的なユースケースのように感じますが、どうすればいいのかわかりません!