目前,我正在尝试使用 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;
}