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