Espresso 自动化测试(三)-获取文本内容

前面我们已经简单的介绍了Espresso的环境搭建Espresso 自动化测试(一)以及有关Espresso的组件构成。下来我们来看看Espresso的一些API

用法


简单的用法我们就不在这里说明了,我们今天来讲下如何获取到一个textView中的内容,其实从刚才的内容的API中实际上没有相应的方法,很明显我们还是需要依赖Android 原生的getText方法。那如何才能够得到TextView的对象,从而获取到文本内容来,其实我们从第一章就应该知道。

ViewActions 代表的就是做某些事。

所以我们就从这个入手,我们重写来ViewAction方法,看看下面的代码吧

public String getText(final Matcher<View> matcher) {
        final String[] text = {null};
        onView(matcher).perform(new ViewAction() {
            //识别所操作的对象类型
            @Override
            public Matcher<View> getConstraints() {
                return isAssignableFrom(TextView.class);
            }
            //视图操作的一个描述
            @Override
            public String getDescription() {
                return "getting text from a TextView";
            }
            //实际的一个操作,在之类我们就可以获取到操作的对象了。
            @Override
            public void perform(UiController uiController, View view) {
                TextView textView = (TextView)view;
                text[0] = textView.getText().toString();
            }
        });
        return text[0];
    }

再来就是我们的测试代码了

//获取文本的内容输入到文本输入框中

String tv = getText(withId(R.id.textToBeChanged));
onView(withId(R.id.editTextUserInput)).perform(typeText(tv));

以上的demo使用的均为android-testing的测试代码。

结束


以上就是获取一个Textview文本的方法了,相比以前的UIAutomator来说确实是麻烦了一点。

results matching ""

    No results matching ""