EditText ウィジェットと Button ウィジェットを含むアクティビティがあります。ボタンをクリックすると、EditText が空の場合、またはsetResult()
このアクティビティを起動した別のアクティビティに値を送り返すために呼び出しが行われた場合に、エラー メッセージが出力されます。
この相互作用が機能することを確認するために、いくつかの簡単な単体テストを作成しています。同じテストの 2 つの異なるバージョンがあります。
@UiThreadTest
public void testOkButtonOnClickWithNumber() {
this.numberText.setText(Integer.toString(this.testNumber));
Assert.assertTrue(this.okButton.performClick());
Assert.assertTrue(this.activity.isFinishing());
}
public void testOkButtonOnClickWithUserInputNumber() throws Throwable {
this.sendKeys(Integer.toString(this.testNumber));
this.runTestOnUiThread(new Runnable() {
@Override
public void run() {
Assert.assertTrue(NumberFilterTest.this.okButton.performClick());
}
});
this.getInstrumentation().waitForIdle(new Runnable() {
@Override
public void run() {
Assert.assertTrue(NumberFilterTest.this.activity.isFinishing());
}
});
}
ご覧のとおり、1 つのテストは単にsetText()
EditText ウィジェットを呼び出すだけです。他の用途sendKeys()
。テスト中にこれら 2 つのオプションのどちらを使用するのが望ましいベスト プラクティスはありますか? または、両方のテストを保持する必要がありますか?