当单击提交按钮时,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();
}