所以我有这个包含 3 个元素的测试活动:TextView、EditText、Button。当用户单击按钮时,Activity 会将 EditText 中的文本转换为 TextView 中的某些文本。
问题是:我如何为此类活动编写单元测试?
我的问题:我应该在一个线程中的一个按钮上“单击”(.performClick),但在另一个线程中异步等待,但这会破坏单元测试的逻辑,因为它会运行以“test”前缀开头的每个测试并将测试标记为“好的”,如果没有不成功的断言。
单元测试代码:
public class ProjectToTestActivityTest extends ActivityInstrumentationTestCase2<ProjectToTestActivity> {
private TextView resultView;
private EditText editInput;
private Button sortButton;
public ProjectToTestActivityTest(String pkg, Class activityClass) {
super("com.projet.to.test", ProjectToTestActivity.class);
}
public void onTextChanged(String str)
{
Assert.assertTrue(str.equalsIgnoreCase("1234567890"));
}
@Override
protected void setUp() throws Exception {
super.setUp();
Activity activity = getActivity();
resultView = (TextView) activity.findViewById(R.id.result);
editInput = (EditText) activity.findViewById(R.id.editInput);
sortButton = (Button) activity.findViewById(R.id.sortButton);
resultView.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable arg0) {
onTextChanged(arg0.toString());
}
}
}
protected void testSequenceInputAndSorting()
{
editInput.setText("1234567890");
sortButton.performClick();
}
}