Android自动化测试框架Espresso(一)——简介
来源:互联网 发布:sam软件csp 编辑:程序博客网 时间:2024/06/04 18:01
辛苦堆砌,转载请注明出处,谢谢!
最近一段时间工作中使用了Espresso,感觉做一些功能测试和单元测试还是很方便的,编写一些测试代码,也方便自己进行回归测试(代码修改后,看看功能测试是否还能通过,防止代码的修改引入问题)。之前博客中也写过一篇Espresso的文章,但是浅尝辄止,本文中,我先简单介绍一下Esprosso,后续的文章会针对我使用到的内容给大家详细介绍一下。
什么是Espresso?
Espresso是Google提供的Android自动化测试框架,属于Android测试支持库,主要用来进行Android界面(UI)相关的自动化测试。
Espresso有什么用?
使用Espresso可以对Activity进行测试,还可以对一个Activity向另一个Activity发送的Intent进行测试。我们可以找到一个UI组件,对其实施ViewAction,从而检查UI组件的行为是否正确。这一切不需要我们的手动操作,只需要简单的几行代码就能够实现。使用Espresso我们可以为应用的UI行为添加必要的测试,也可以实施TDD(测试驱动开发)。
如何配置Espresso?
在Android项目的build.gradle(app目录下的)中添加一些语句(如果本身没有),如下所示:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12'}
主要是其中androidTestCompile那一句,我们从espresso中排除了com.android.support中的support-annotations模块,该模块是Android Annotations模块,提供了很多的注解,简化Android开发,感兴趣的也可以学学,但是引入该模块,需要使用Android-apt,想了解的看看Android Annotations的配置,我们这里可以不使用Android Annotations,所以将其排除。
一个简单的测试
下面我们做一个简单的Demo,看看是否配置成功。首先在如下位置创建类:
由于我们创建了一个EmptyActivity项目,所以项目自带一个MainActivity,其中有内容为“Hello World!”的TextView,我们就写一个测试,看看这个TextView是否存在。测试类的内容如下:
package com.yjp.espressodemo;import android.support.test.rule.ActivityTestRule;import android.support.test.runner.AndroidJUnit4;import android.widget.TextView;import org.junit.Rule;import org.junit.Test;import org.junit.runner.RunWith;import static android.support.test.espresso.Espresso.onView;import static android.support.test.espresso.assertion.ViewAssertions.matches;import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;import static android.support.test.espresso.matcher.ViewMatchers.withText;import static org.hamcrest.Matchers.allOf;import static org.hamcrest.Matchers.instanceOf;@RunWith(AndroidJUnit4.class)public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class); @Test public void testHelloWorldTextView() { onView(allOf(withText("Hello World!"), instanceOf(TextView.class))) .check(matches(isDisplayed())); }}
上面的代码,我们使用了一个ActivityTestRule,并使用@Rule注解标识,说明我们要测试的是一个Activity,而且是以MainActivity为测试的启动Activity。然后有一个测试方法,该测试方法的内容就是说我们要检查一个文本内容为Hello World!的TextView是否在MainActivity中显示。
在MainActivityTest.java文件上右键,点击Run 'MainActivityTest'即可运行测试,我们发现测试通过。如果你在测试时未通过,可以在MainActivity的布局中添加一个文本内容为Hello World!的TextView,再次运行测试即可。
这样,我们的Espresso的环境就配置好了,后面有机会,我会给大家介绍一些Espresso的更细节的用法。
- Android自动化测试框架Espresso(一)——简介
- Espresso——Android自动化测试框架
- Android自动化测试框架---Espresso(1)
- Android自动化测试|Espresso-简介
- Android自动化测试框架Espresso(二)——测试Toast弹出内容
- Android自动化测试框架Espresso(四)——intent测试
- Android自动化测试框架Espresso(五)——测试AdapterView
- Espresso 自动化测试(一)
- Android自动化测试框架Espresso(三)——View Action的使用
- Espresso——Android测试工具Espresso简介
- Espresso——Android测试工具Espresso简介
- Android自动化测试框架---Espresso(2)
- Android自动化测试--Espresso框架使用
- Google官方的UI自动化测试框架—— Espresso
- Espresso UI自动化测试 一
- Android 自动化测试 Espresso篇:简介&基础使用
- Android自动化测试中Espresso框架学习笔记(1)
- 如何在Android Studio使用Espresso框架自动化测试
- 静态方法和实例化方法的区别
- Unit2.3 文档
- Beautiful People ZOJ
- 指针数组和数组指针的区别
- POJ 2828 Buy Tickets(线段树)
- Android自动化测试框架Espresso(一)——简介
- spring事务回滚
- 第九天2017/04/18(1、友元函数、运算符重载)
- spring建立websocket例子
- UICenterOnChild
- bzoj 3282 LCT
- 【qscoj】哗啦啦村的奇迹果实(一)
- 杂记
- bzoj4810 [Ynoi2017]由乃的玉米田 莫队+bitset