我正在本地 JVM 上使用 Robolectric 进行单元测试。
当我单击按钮时,我得到 androidx.test.espresso.PerformException: Error Performing 'single click - At Coords.
@Test
public void givenVerificationCodeEmpty_whenUserPressVerify_thenErrorMustAppear() {
ActivityScenario.launch(VerifyAccountActivity.class);
onView(withId(R.id.verify_account_verify_button)).perform(click());
String error = context.getString(R.string.error_verification_code_empty);
onView(withId(R.id.verify_code_input)).check(matches(hasErrorText(error)));
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Android Studio 3.3.2 和 Robolectric 4.2。
绑定到按钮的操作涉及 view.requestFocus(),如代码所示
private void verify() {
mVerificationCodeView.setError(null);
String code = mVerificationCodeView.getText().toString();
if(TextUtils.isEmpty(code)) {
mVerificationCodeView.setError(getResources().getString(R.string.error_verification_code_empty));
mVerificationCodeView.requestFocus();
} else {
showProgress(true);
}
}
Run Code Online (Sandbox Code Playgroud)
这是完整的错误堆栈
androidx.test.espresso.PerformException: Error performing 'single click - At Coordinates: 159, 372 and precision: 16, 16' on view 'with id: com.syriail.aladdin:id/verify_account_verify_button'.
at androidx.test.espresso.PerformException$Builder.build(PerformException.java:82)
at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:79)
at …Run Code Online (Sandbox Code Playgroud)