本文介绍了安卓测试.如何使用 Espresso 更改 TextView 的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 Espresso 更新 EditText 很容易,但我找不到更改文本的方法(例如使用 TextView.setText("someText"); 方法)在测试过程中.

It is easy to update an EditText with Espresso, but I can not find a way to change a text (like with a TextView.setText("someText"); method) during the testing process.

ViewAction.replaceText(stringToBeSet);

不起作用,因为它应该是一个 EditText

Is not working, cos it should be an EditText

推荐答案

您可以考虑实现自己的 ViewAction.

You can look into implementing your own ViewAction.

这是来自 espresso 库的 replaceText viewaction 的修改版本,旨在用于 TextView.

Here is the modified version of the replaceText viewaction from espresso library that is meant to work on the TextView.

 public static ViewAction setTextInTextView(final String value){
            return new ViewAction() {
                @SuppressWarnings("unchecked")
                @Override
                public Matcher<View> getConstraints() {
                    return allOf(isDisplayed(), isAssignableFrom(TextView.class));
                }

                @Override
                public void perform(UiController uiController, View view) {
                    ((TextView) view).setText(value);
                }

                @Override
                public String getDescription() {
                    return "replace text";
                }
            };
    }

这篇关于安卓测试.如何使用 Espresso 更改 TextView 的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 20:15