创建自定义的Espresso匹配器

原创 2018年04月16日 14:01:28

本篇讲述通过BoundedMatcher 自定义了Espresso的匹配器.

概述

Android 提供了 BoundedMatcher 类用来创建针对特定 View 的 Espresso 匹配器.

详细内容请移步 : https://developer.android.com/training/testing/espresso/lists.html

示例

下面是一个关于检查 EditText hint 文本的自定义匹配器:

首先你需要在 src/androidTest/java 目录下创建 Matchers 类.

/**
 * Created by lulu on 2018/3/10.
 * 自定义的 View 匹配器
 */
public class Matchers {
    public static Matcher<View> withItemHint(final String itemHintText) {
        checkArgument(!(itemHintText.equals(null)));
        return withItemHint(is(itemHintText));
    }
    public static Matcher<View> withItemHint(final Matcher<String> matcherText) {
        // 如果传入非法的 matcher 需提前处理
        checkNotNull(matcherText);
        return new BoundedMatcher<View, EditText>(EditText.class) {

            @Override
            public void describeTo(Description description) {
                description.appendText("该 EditText 的 Hint 为: " + matcherText);
            }

            @Override
            protected boolean matchesSafely(EditText item) {
                return matcherText.matches(item.getHint().toString());
            }
        };
    }
}

通过下面代码使用你刚才创建 Matchers 类.

// more
import static com.lulu.androidtestdemo.espresso.custom_matcher.Matchers.withItemHint;

/**
 * Created by lulu on 2018/3/10.
 * 测试自定义匹配器
 */
@RunWith(AndroidJUnit4.class)
public class TestCustomMatcher {

    @Rule
    public ActivityTestRule<EspressoTest1Activity> mRule =
            new ActivityTestRule<EspressoTest1Activity>(EspressoTest1Activity.class);

    @Test
    public void testEditHintDisplay() throws Exception {
        onView(withId(R.id.inputField)).check(matches(withItemHint("this is a hint")));
    }
}

敲行代码再睡觉

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013144863/article/details/79959765

Android自定义组合控件

-
  • 1970年01月01日 08:00

自动化测试之—Hamcrest匹配器

自动化测试之—Hamcrest匹配器
  • titjs
  • titjs
  • 2017-08-04 22:12:29
  • 205

特征匹配之Brute-Force 匹配和FLANN 匹配器

使用 OpenCV 中的蛮力(Brute-Force)匹配和 FLANN 匹配。 1:Brute-Force 匹配的基础 蛮力匹配器是很简单的。首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每...
  • GAN_player
  • GAN_player
  • 2017-10-19 15:50:01
  • 470

shiro中密码匹配

参考文章
  • lookthatgirl
  • lookthatgirl
  • 2014-07-09 11:04:45
  • 9617

(38)集合的匹配

//3:集合的匹配 Ext.onReady(function(){ var item=new Ext.util.MixedCollection(); var obja={name:'a'}; i...
  • Xuan6251237011
  • Xuan6251237011
  • 2014-03-30 00:36:18
  • 677

EassyMock实践 自定义参数匹配器

虽然easymock中提供了大量的方法来进行参数匹配,但是对于一些特殊场合比如参数是复杂对象而又不能简单的通过equals()方法来比较,这些现有的参数匹配器就无能为力了。easymock为此提供了I...
  • csujiangyu
  • csujiangyu
  • 2015-03-01 14:02:53
  • 511

正则表达式、正则表达式常用功能、匹配器、URL

-------android培训、Java培训、期待与您交流!------- 1  正则表达式——功能:匹配、切割、替换 正则表达式:符合一定规则的表达式。       作用:用于专...
  • miqi0533
  • miqi0533
  • 2014-03-25 21:10:14
  • 1435

Shiro-学习总结-认证之自定义realm

shiro自定义realm
  • LM5463640
  • LM5463640
  • 2017-02-22 22:37:09
  • 203

JUnit4---Hamcrest匹配器常用方法总结

一.Hamcrest是什么? Hamcrest is a library of matchers, which can be combined in to create flexible expres...
  • neven7
  • neven7
  • 2015-01-07 16:49:20
  • 3146

C++正则表达式匹配器

简单的正则表达式匹配器实现一个正则表达式匹配器,给出处理模型,并提供源代码。处理模型 字符 含义 c 匹配任意的字母c .(句点) 匹配任意的单个字符 ^ 匹配输入字符串...
  • u014291399
  • u014291399
  • 2016-04-05 14:39:22
  • 391
收藏助手
不良信息举报
您举报文章:创建自定义的Espresso匹配器
举报原因:
原因补充:

(最多只允许输入30个字)