当点击提交按钮时,Logcat 没有打印任何它应该打印的东西!
我错过了什么?
主 Activity 功能测试
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();
}
}
}
主要 Activity
@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();
}
关于Android 测试 - Android performClick() 或 Robotium clickOnView() 都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718021/