android - 如何测试点击触发的AsyncTask?

标签 android android-asynctask onclick onclicklistener android-testing

如果 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/

相关文章:

当使用相机太慢时,Android 从横向移动到纵向(反之亦然)?

java - 从广播接收器 android 调用 AsyncTask

javascript - 单击时分配一个值

android - res/menu 和 res/xml 不存在

android - ImageView 中的全尺寸图像

java - 用新的 Asynctask 替换 AsyncTask 时会发生什么

javascript - 如何使用 JavaScript 替换函数名称并将其识别为函数?

Android TableRow背景

android - 如何制作可扩展列表Android

java - 使用 AsyncTask 隐藏/显示进度条