小编Hus*_*rer的帖子

使用 Robolectric 进行单元测试时如何修复 androidx.test.espresso.PerformException?

我正在本地 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)

android robolectric android-espresso

5
推荐指数
0
解决办法
796
查看次数

标签 统计

android ×1

android-espresso ×1

robolectric ×1