使用Espresso测试Snackbar节目

Sle*_*ama 33 android integration-testing android-testing android-espresso android-snackbar

有没有办法使用Espresso测试小吃店出现的正确文字?

我有一个简单的电话来创建一个小吃吧

Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

我没有运气就试过这个

onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)

ksa*_*kar 66

这对我有用,请试试.

onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text")))
            .check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)

如果您使用AndroidX,请使用以下内容:

onView(withId(com.google.android.material.R.id.snackbar_text))
        .check(matches(withText(R.string.whatever_is_your_text)))
Run Code Online (Sandbox Code Playgroud)

  • 我得到`NoMatchingViewException:层次结构中找不到匹配的视图:带有id:com.my.package.debug:id/snackbar_text`.有任何想法吗? (5认同)

小智 14

替代

private void checkSnackBarDisplayedByMessage(
        @StringRes int message) {
    onView(withText(message))
            .check(matches(withEffectiveVisibility(
                    ViewMatchers.Visibility.VISIBLE
            )));
}
Run Code Online (Sandbox Code Playgroud)