如何使用Android中的Espresso为textview设置值

如何使用Android中的Espresso为textview设置值,第1张

概述我正在为Fragment编写测试用例.我可以将文本设置为Edittext,但无法通过测试将文本视图设置为文本视图.请有人帮我解决这个问题.Bellow是我编辑文本的代码.onView(withId(R.id.editText)).perform(typeText("mytext"),closeSoftKeyboard());请帮我如何设置文本到

我正在为Fragment编写测试用例.我可以将文本设置为Edittext,但无法通过测试将文本视图设置为文本视图.请有人帮我解决这个问题.Bellow是我编辑文本的代码.

   onVIEw(withID(R.ID.editText))        .perform(typeText("my text"), closeSoftKeyboard());

请帮我如何设置文本到文本视图.

解决方法:

这是由于typeText的先决条件而发生的

VIEw preconditions:

must be displayed on screen

must support input methods

TextVIEw不支持Input method(用户不能通过键盘或其他东西输入值)因此问题

解决方案:您可以实现自己的VIEwAction视图

From how to create View action to set text on TextView

public static VIEwAction setTextInTextVIEw(final String value){            return new VIEwAction() {                @SuppressWarnings("unchecked")                @OverrIDe                public Matcher<VIEw> getConstraints() {                    return allOf(isdisplayed(), isAssignableFrom(TextVIEw.class));//                                            ^^^^^^^^^^^^^^^^^^^ // To check that the found vIEw is TextVIEw or it's subclass like EditText// so it will work for TextVIEw and it's descendants                  }                @OverrIDe                public voID perform(UiController uiController, VIEw vIEw) {                    ((TextVIEw) vIEw).setText(value);                }                @OverrIDe                public String getDescription() {                    return "replace text";                }            };    }

那么你可以做到

onVIEw(withID(R.ID.editText))        .perform(setTextInTextVIEw("my text"));
总结

以上是内存溢出为你收集整理的如何使用Android中的Espresso为textview设置值全部内容,希望文章能够帮你解决如何使用Android中的Espresso为textview设置值所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存