2016-10-17 8 views
1

テスト結果をターゲットデバイスに依存する場合、テストを作成する最善の方法は何ですか?テストがデバイスに依存する場合、Android用の自動テストを作成するにはどうすればよいですか?

たとえば、ディスプレイの高さをピクセル単位で表示する機能しか備えていないAndroidアプリケーションがあるとします。異なる種類のデバイスごとに結果が変わる場合、どうすればそれをテストできますか?

私の考えは、3つまたは4つの異なる構成でプログラムをテストすることです。これらのテストの出力を知っているので、期待値と各デバイスの実際の値を比較する必要があります。

しかし、このようなテストの正しい構造は何ですか?デバイスごとにテストクラスを作成する必要がありますか?特定のテスト構成に対してのみいくつかのテストを実行するにはどうすればよいですか? (たとえば、Nexusでテストを実行する場合は、テストAを実行しますが、テストはサムスンのテストBで実行されます)。

答えて

0

最初の質問については、アプリケーションが画面の高さなどを表示している場合は、別の方法で取得して結果を比較してください。 adb shell wm sizeを使用するか、デバイスのスクリーンショットを取得してイメージサイズを取得できます。

2番目の質問では、デバイスにのみ適用可能なテストを作成する場合、JUnit4 Assumeを使用できます。これは、テストが意味のある条件についての前提を示すのに便利なメソッドのセットです。

Aは、コードを意味するものではありません仮定が壊れて失敗したが、テストは有用な情報を提供しないことを、あなたは、あなたのテストの開始時にそれを使用することができ

@Test 
public final void testSomething() throws IOException { 
    assumeThat(Build.MANUFACTURER, is(equalTo("samsung"))); 
    // your test here 
    ... 
} 
関連する問題