如果 AsyncTask
是由按钮上的单击事件触发的,我该如何测试它 - 如何等待 AsyncTask 完成?
请注意,我总是可以在我的测试方法中直接执行 AsyncTask
,我知道如何测试这种情况。但是,如果我坚持使用 performClick()
模拟 onClick
事件,我还能测试我的注册过程吗?
主 Activity 功能测试
public class MainActivityFunctionalTest extends
ActivityInstrumentationTestCase2<MainActivity> {
// ...
public void testRegistration() {
ImageButton submitBtn = (ImageButton) solo.getView(R.id.BtnR);
assertNotNull(submitBtn);
submitBtn.performClick();
// How to do something when the registration is done?
}
// ...
}
MainActivity(待测项目的)
ImageButton submitBtn = (ImageButton) findViewById(R.id.BtnRegister);
submitBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sendRegistration();
}
});
public void sendRegistration() {
Processor processor = new Processor();// subclass of AsyncTask
processor.execute();
}
最佳答案
你可以这样做:
myAsyn obj = new myAsyn();
obj.execute();
while(obj.getStatus()==AsynTask.status.Finished)
{
//wait here
}
//when it finishes , this code will going to execute.
关于android - 如何测试点击触发的AsyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692974/