Android Espresso 如何检查EditText提示?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我的基本测试正在运行,现在试图弄清楚如何检查我的编辑文本是否有特定的提示文本?

onView(withId(R.id.locationInput)).check(matches...?)

提问于
用户回答回答于

你需要创建你自己的匹配器:

public static Matcher<View> withHint(final String expectedHint) {
    return new TypeSafeMatcher<View>() {

        @Override
        public boolean matchesSafely(View view) {
            if (!(view instanceof EditText)) {
                return false;
            }

            String hint = ((EditText) view).getHint().toString();

            return expectedHint.equals(hint);
        }

        @Override
        public void describeTo(Description description) {
        }
    };
}

然后你可以使用它:

onView(withId(R.id.locationInput)).check(matches(withHint("Location (Optional)")));
用户回答回答于

由于Espresso 2.0仅使用内部ViewMatcher withHint

onView(withId(R.id.locationInput)).check(matches(withHint("your_hint")))

扫码关注云+社区