Android 开发 谷歌UI测试框架(Espresso)

Android 开发 谷歌UI测试框架(Espresso)

官网:https://developer.android.com/training/testing/espresso/index.html

核心 API 小巧、可预测、易于学习并且依然保持对定制的开放。Espresso 测试清晰的描述异常、交互和断言,而没有样板内容、自定义基础设施或凌乱的实现细节的干扰。

Espresso 测试运行非常快!它会在应用 UI 处于静止时对其进行操作和断言,而使你远离了等待、同步、睡眠以及后台轮)。

配置测试环境

在应用的 build.gradle 文件添加

dependencies中

 androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

设置 instrumentation runner 在 ​android.defaultConfig​ 下添加

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

Android Studio 3.0.1中默认是配置好的 不需要自己添加

我们先来创建第一个测试,让项目先跑起来

EspressoTest1Activity.java

public class EspressoTest1Activity extends BaseActivity {

    @BindView(R.id.espress_test1_tv)
    TextView espressTest1Tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_espresso_test1);
        ButterKnife.bind(this);
        showBack();
    }
}
开始.gif

开始学习各类UI的测试

先来看看提供了哪些方法

https://google.github.io/android-testing-support-library/downloads/espresso-cheat-sheet-2.1.0.pdf

20161019145537619.png

基础

Espresso 组件介绍

  • Espresso : 与识图交互的切入点,参考onViewonData. 也暴露了与任何视图都没有必要联系的API (比如pressBack)

  • ViewMatchers : 实现了Matcher<? super View> 接口的对象集合,你可以在onView方法中传入一个或者多个此类对象来在当前的视图结构中定位一个视图;

  • ViewActions : 可以作为参数出入ViewInteraction.perform()方法中的ViewAction的集合(比如 click()).

  • ViewAssertions : 可以作为参数传入ViewInteraction.check()方法中的
    ViewAssertion 的集合,通常,你会使用带有视图匹配器的匹配断言来判断当前被选中视图的状态;

简单的说

  • ViewMachers:寻找用来测试的View。
  • ViewActions:发送交互事件。
  • ViewAssertions:检验测试结果。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容