目前,我正在尝试使用android stock junit框架做一些TDD。
我想单击一个按钮,让活动以setUp
方法从远程服务器获取文件,然后在下面的测试方法中,我可以检查是否生成了该文件。但是我在performClick
中调用setUp
后发现,活动已完成,但未执行生成文件代码。所以我正在寻找一种方法让活动运行所有代码,然后执行测试方法。也许Thread.sleep(2000)
可以解决这个问题,但我怀疑是否有更好的方法。
这是代码:
@UiThreadTest
protected void setUp() throws Exception {
try {
runTestOnUiThread(new Runnable() {
@Override
public void run() {
((EditText)mActivity.findViewById(R.id.edit_server)).setText("http://192.168.120.248/hz/temp/phonebook.xml");
click(R.id.ok);
}
});
} catch (Throwable e) {
}
}
public void testFileExist() throws Exception {
assertTrue(isFileExist());
}
private boolean isFileExist() {
File file = new File("/tmp/phonebook.xml");
boolean exists = file.exists();
if (exists) {
file.delete();
}
return exists;
}