如何使用espresso android在一定范围内测试查看文本

如何使用espresso android在一定范围内测试查看文本,android,android-studio,range,android-espresso,android-testing,Android,Android Studio,Range,Android Espresso,Android Testing,我知道我们可以使用expresso来检查视图输出,例如:onView((withId(R.id.text\u view\u name))).check(匹配(withText(“text\u value\u here”))查看输出是否如预期的那样,但是如果我们想确保它在一定的值范围内,该怎么办?例如,不低于0 如何使用espresso编写测试代码,确保UI值低于、高于或在某个值范围内?使用自定义匹配器可以轻松完成: public class TextViewValueMatcher ex

我知道我们可以使用expresso来检查视图输出,例如:
onView((withId(R.id.text\u view\u name))).check(匹配(withText(“text\u value\u here”))
查看输出是否如预期的那样,但是如果我们想确保它在一定的值范围内,该怎么办?例如,不低于0


如何使用espresso编写测试代码,确保UI值低于、高于或在某个值范围内?

使用自定义匹配器可以轻松完成:

    public class TextViewValueMatcher extends TypeSafeMatcher<View> {
        @Override
        protected boolean matchesSafely(View item) {
            TextView textView = (TextView) item;
            String value = textView.getText().toString();
            boolean matching = <here your condition on the value>;
            return matching;
        }

        @Override
        public void describeTo(Description description) {

        }
    }
公共类TextViewValueMatcher扩展了TypeSafeMatcher{
@凌驾
受保护的布尔匹配安全(视图项){
TextView TextView=(TextView)项;
字符串值=textView.getText().toString();
布尔匹配=;
返回匹配;
}
@凌驾
公共无效说明(说明){
}
}
然后用作以下用途:

Espresso.onView(withId(<some_id>)).check(matches(new TextViewValueMatcher()));
Espresso.onView(withId()).check(匹配项(新的TextViewValueMatcher());

您很可能需要编写自己的matcher。@代码学徒谢谢您的评论,我编辑了我的答案。这个答案太棒了!对于OP:如果您想要一个类似于默认匹配器的流畅API,您可以修改它以从工厂函数返回匹配器,类似于
isBetween()
。您还需要定义函数,以便可以传入
min
max
值。太好了!我创建了新的自定义类,并且必须将字符串转换为int,但它的功能是确保int不小于0。我想我可以计算出最小值和最大值检查的其余部分。@Drew先生,我很高兴它有帮助!