android-在Espresso中声明EditText值

android-在Espresso中声明EditText值,第1张

概述我们能否对EdittextValue执行断言并根据其输出记录测试用例.就像我们的Edittext值等于我们的值一样,我们要执行条件A否则B.onView(withId(viewId)).check(matches(isEditTextValueEqualTo(viewId,value)));Matcher<View>isEditTextValueEqualTo(finalintviewId,finalSt

我们能否对Edittext Value执行断言并根据其输出记录测试用例.就像我们的Edittext值等于我们的值一样,我们要执行条件A否则B.

 onVIEw(withID(vIEwID)).check(matches(isEditTextValueEqualTo(vIEwID, value)));Matcher<VIEw> isEditTextValueEqualTo(final int vIEwID, final String content) {    return new TypeSafeMatcher<VIEw>() {        @OverrIDe        public voID describeto(Description description) {            description.appendText("Match Edit Text Value with VIEw ID Value : :  " + content);        }        @OverrIDe        public boolean matchesSafely(VIEw vIEw) {            if (vIEw != null) {                String editTextValue = ((EditText) vIEw.findVIEwByID(vIEwID)).getText().toString();                if (editTextValue.equalsIgnoreCase(content)) {                    return true;                }            }            return false;        }    };}

使用try无法正常工作.Catch(Exception e)

解决方法:

我认为您不应该在匹配器中执行findVIEwByID,我认为没有理由这样做.

我已经更新了您的匹配器:

Matcher<VIEw> isEditTextValueEqualTo(final String content) {    return new TypeSafeMatcher<VIEw>() {        @OverrIDe        public voID describeto(Description description) {            description.appendText("Match Edit Text Value with VIEw ID Value : :  " + content);        }        @OverrIDe        public boolean matchesSafely(VIEw vIEw) {            if (!(vIEw instanceof TextVIEw) && !(vIEw instanceof EditText)) {                    return false;            }            if (vIEw != null) {                String text;                if (vIEw instanceof TextVIEw) {                    text =((TextVIEw) vIEw).getText().toString();                } else {                    text =((EditText) vIEw).getText().toString();                }                return (text.equalsIgnoreCase(content));            }            return false;        }    };}

并这样称呼:

onVIEw(withID(vIEwID)).check(matches(isEditTextValueEqualTo(value)));
总结

以上是内存溢出为你收集整理的android-在Espresso中声明EditText值全部内容,希望文章能够帮你解决android-在Espresso中声明EditText值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存