使用 Espresso 测试 Snackbar show
Testing Snackbar show with Espresso
有没有一种方法可以使用 Espresso 测试小吃栏是否显示正确的文本?
我有一个创建小吃店的简单调用
Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show();
我已经试过了,但运气不好
onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));
这对我有用,请试试。
onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text")))
.check(matches(isDisplayed()));
如果您使用AndroidX,请使用以下内容:
onView(withId(com.google.android.material.R.id.snackbar_text))
.check(matches(withText(R.string.whatever_is_your_text)))
另一种选择
private void checkSnackBarDisplayedByMessage(@StringRes int message) {
onView(withText(message))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
}
我看到了之前的答案,但我认为这个会更好。
@Test
public void onFabClick_shouldDisplaySnackbar() throws Exception {
onView(withId(R.id.fab)).perform(click());
// Compare with the text message of snackbar
onView(withText(R.string.snackbar_message))
.check(matches(isDisplayed()));
}
有没有一种方法可以使用 Espresso 测试小吃栏是否显示正确的文本?
我有一个创建小吃店的简单调用
Snackbar.make(mView, "My text", Snackbar.LENGTH_LONG).show();
我已经试过了,但运气不好
onView(withText("My text")).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));
这对我有用,请试试。
onView(allOf(withId(android.support.design.R.id.snackbar_text), withText("My text")))
.check(matches(isDisplayed()));
如果您使用AndroidX,请使用以下内容:
onView(withId(com.google.android.material.R.id.snackbar_text))
.check(matches(withText(R.string.whatever_is_your_text)))
另一种选择
private void checkSnackBarDisplayedByMessage(@StringRes int message) {
onView(withText(message))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
}
我看到了之前的答案,但我认为这个会更好。
@Test
public void onFabClick_shouldDisplaySnackbar() throws Exception {
onView(withId(R.id.fab)).perform(click());
// Compare with the text message of snackbar
onView(withText(R.string.snackbar_message))
.check(matches(isDisplayed()));
}