当单击提交按钮时,Logcat不会打印任何内容!
我想念什么?

MainActivityFunctionalTest

public class MainActivityFunctionalTest extends
        ActivityInstrumentationTestCase2<MainActivity> {
public void testRegistrationFormIsSubmitted() {
final MainActivity mainActivity = (MainActivity) solo.getCurrentActivity();

        try {
            runTestOnUiThread(new Runnable() {
                @Override
                public void run() {
ImageButton submitBtn = (ImageButton) solo.getView(R.id.btn_next);

                    assertNotNull(submitBtn);
                    submitBtn.performClick();
}
            });
        } catch (Throwable e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}
}


主要活动

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
ImageButton submitBtn = (ImageButton) findViewById(R.id.btn_next);
submitBtn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Log.i(TAG, "Submit button is clicked");// This is not printed
                sendActivation(v);
            }
        });
}


更新
所以我将submitBtn.performClick()更改为solo.clickOnView(submitBtn),但问题仍然相同

最佳答案

因为您正在调用runTestOnUiThread(),所以测试方法在调用run()之前完成(并通过)。解决方案就是停止使用runTestOnUiThread()。

public void testRegistrationFormIsSubmitted() {
    MainActivity mainActivity = (MainActivity) solo.getCurrentActivity();
    ImageButton submitBtn = (ImageButton) solo.getView(R.id.btn_next);
    assertNotNull(submitBtn);
    submitBtn.performClick();
}

10-07 19:40
查看更多