問題タブ [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.
android - 複数のアクティビティにまたがる Android アプリケーションをどのようにテストしますか?
多くのアクティビティにまたがる多くの画面とワークフローで構成される複雑な Android アプリケーションを構築しています。私たちのワークフローは、銀行の ATM マシンで見られるものに似ています。たとえば、ユーザーの選択に基づいて他のアクティビティに移行できるActivity
メイン メニューに移行するログインがあります。Activity
非常に多くのワークフローがあるため、ワークフローをエンドツーエンドでテストできるように、複数のアクティビティにまたがる自動テストを作成する必要があります。たとえば、ATM の例を使用して、有効な PIN を入力し、メイン メニューに移動することを確認し、現金の引き出しを選択し、現金の引き出し画面にいることを確認します。メインメニューに戻るか、「ログアウト」します。
ActivityInstrumentationTestCase2
Android (例: ) とPositronに付属するテスト API をいじりましたが、どちらも単一の の範囲を超えてテストすることはできないようですActivity
。これらのツールには、いくつかの単体テスト用のユーティリティがいくつかありますが、勝っています。複数のアクティビティにまたがるテスト シナリオのニーズを満たしていません。
xUnit フレームワーク、スクリプト作成、GUI レコーダー/再生などにオープンであり、アドバイスをいただければ幸いです。
android - Android での GPS のテスト
Androidで GPS アプリケーションをどのようにテストしますか? Android エミュレーターを使用してテストできますか?
android - Android でのデータベースのテスト: ProviderTestCase2 または RenamingDelegatingContext?
一部のクラス内で android.database パッケージを使用してデータベースへのアクセスを実装しましたSQLiteOpenHelper
(パターン DAO を使用)。
を使用してこれらのクラスのいくつかの junit テストを作成しましたAndroidTestCase
が、これにより、テストでアプリケーションと同じデータベースが使用されます。
ProviderTestCase2
orRenamingDelegatingContext
を使用してデータベースを個別にテストできることを読みました。残念ながら、ProviderTestCase2/RenamingDelegatingContext を使用してデータベースをテストする方法を示す素晴らしいチュートリアル/例を見つけることができませんでした。
誰か私にどこかを教えてくれますか、ヒントをくれますか、データベース テスト用のコードを共有できますか?!
Cheerrrsss!! ジョルジオ
android - Android で最適に動作するライブラリ/フレームワークをモックしますか?
サードパーティ ライブラリ (Twitter4j) を使用して Android アプリケーションを開発しています。JUnit と機能テストでこれらのオブジェクト (私が作成したオブジェクトも) をモックできるようにしたいと考えています。
いくつかのモッキング ライブラリを使用した良い経験があり、それらを推奨できますか?
android - AndroidTestCaseからアクティビティを呼び出す
テスト対象のアクティビティとは別のアクティビティを実行する必要があるAndroidテストケースを作成しています(テストのためではなく、コンテンツリゾルバーにアクセスしてテレフォニー設定を変更できるようにするためです)。
テストケースから、または別の方法でアクティビティを開始することは可能ですか。
アクティビティのテストに使用されるAndroidTestCaseクラスを認識しています。テストで使用していますが、ContentResolverを使用してテレフォニー設定を変更してから、テスト対象のアクティビティの反応をテストする必要があるため、変更するには別のアプリケーションコンポーネントが必要です。これらの設定。
注:複数のアクティビティテスト(ActivityManagerが必要)の背後にある複雑さを解放しますが、onCreateメソッドにロジックを含めることができるように、そのメソッドを使用して設定を変更するだけです。
android - テスト プロジェクトへのテスト ファイルの保存
XML ファイルを使用するいくつかのテストを作成しました。私は2つのプロジェクトを持っています。1つはコードで、もう1つはテストです。この XML ファイル (テスト中に使用されるデータが含まれています) をテスト プロジェクトに保存したいと考えています。しかし、src プロジェクトのファイルだけがデバイスにロードされているように見えるため、それは不可能です。この問題を解決する方法を知っている人はいますか?
android - AndroidTestCase でカスタム コンテキストを設定する
ContentProvider
特定の時点でのみアイテムを更新するカスタムをテストしようとしています。
ブランチをテストするにはshouldUpdate
、時間を元に戻し、アプリケーションでカスタムの日付を設定する必要があります。をスタブ化できなかったSystem.currentTimeMillis()
ので、Application オブジェクトにメソッドを入れて、このようにしようとしてsetContext()
いAndroidTestCase
ます。
}
ただし、プロバイダーを呼び出すgetApplicationContext().currentTimeMillis()
と、メソッドの実際の実装が返されます。これは、でSystem.currentTimeMillis()
設定したカスタム日時ではありませんAndroidTestCase
。
私は何を間違っていますか?
ps ProviderTestCase2 については知っていますが、プロバイダーの SharedPreferences にもアクセスしているため、ProviderTestCase2 は null を返します。そのため、私は AndroidTestCase を使用しています。
android - ホームアプリケーションをテストするには?
「ホーム」アプリケーションをテストする可能性はありますか?
テスト結果として、次のようになります。
プロセスを手動で強制終了すると、自動的に再起動されます。テスト アプリケーションがアプリケーションにアタッチできないのは、それが原因Home
でしょうか。
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
コマンド ラインでビルドすると、結果は次のようになります。
私は日食のために働くいくつかの回避策を見つけました:
これでうまくいきますが、ANT で動作するソリューションを探しています (より正確には、両方で同時に動作するソリューションを探しています)。
サンプル プロジェクトはライブラリ jar を使用しないため、文書化されたアプローチ (build.xml を変更してメイン プロジェクトの jar をクラス パスに含めることによる) はここでは適用できません (また、この特定の問題は SDK ツールで修正されていると思います)。 r16)。
to の依存関係をどうにかしTestMainTest
てTestLib
( を変更してproject.properties
) 削除し、代わりにビルド スクリプトをハックして、それらのビルドされた jar をクラス パスに配置します (したがって、-compile
ターゲットを変更するものに置き換えます。のクラスパスjavac
)。私は android SDK ツールチェーンの変更に対応しようとしてきた長い歴史があるため、これは、a) かなり複雑であり、b)build.xml
ツールチェーンが変更されるたびに (かなり頻繁に) を常に変更する必要があるため、実際には私のお気に入りのオプションではありません。
そのため、スレッジハンマーを使用せずにそのようなセットアップを機能させる方法のアイデアを探しています。完全に明らかな何かが欠けているのかもしれませんが、私にとってこのユースケースはかなり標準的であり、なぜこれがすぐにサポートされないのか理解するのに苦労しています.
java - Robolectric の SharedPreferences のテスト データの提供
Robolectric を使い始めたばかりですが、私が必要としているものはほとんどないようです。ただし、SharedPreferences の使用に関しては、ちょっとした障害にぶつかりました。
私は2つのテストケースを持っています
アクティビティには新しい/空の sharedPreferences が必要です
アクティビティは、すでに一部のデータが含まれている sharedPreferences を想定しています
テスト ケース 1 の場合、テストは期待どおりに合格しているため、すべて問題ありません:)
ただし、テスト ケース 2 では、Robolectric に偽のデータを提供する適切な方法を見つけられないように思われるため、アクティビティはこの偽のデータにアクセスできます。
非常に一般的なユースケースのように感じますが、どうすればいいのかわかりません!