我有一个带有 EditText 和 Button 小部件的 Activity。setResult()
如果 EditText 为空或调用将值发送回另一个启动此活动的活动,则单击该按钮会打印一条错误消息。
我正在编写一些简单的单元测试来检查这种交互是否有效。我有同一个测试的两个不同版本:
@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());
}
});
}
如您所见,一项测试仅调用setText()
EditText 小部件。其他用途sendKeys()
。在测试期间是否有首选的最佳实践可以使用这两个选项中的哪一个?还是我应该保留两个测试?