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的更细节的用法。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 衣服潮湿有异味怎么办 家里潮湿有异味怎么办 婚检白带有问题怎么办 体检前小便了怎么办 高考有英文纹身怎么办 高考手上有纹身怎么办 来大姨妈婚检怎么办 高考体检转氨酶偏高怎么办 播音主持有纹身怎么办 高考体检补不了怎么办 辅警体检不合格怎么办 小儿听力筛查未过关怎么办 宝宝听力没过关怎么办 护士体检有乙肝怎么办 高考体检表填错怎么办 高考体检表没有下载怎么办 警校视力没过怎么办 凉鞋挂钩总是脱怎么办 特别害怕抛妇产怎么办 抛妇产害怕紧张怎么办 毕业体检有乙肝怎么办? 宝宝胸围偏小怎么办 入园体检不合格怎么办 油表不显示油量怎么办 上大学体检不过怎么办 军校体检没过怎么办 六次化疗后怎么办 宝宝肚子有蛔虫怎么办 肾综激素依赖怎么办 胎儿阴囊有积液怎么办 中考学生英语很差怎么办 中考考得很差怎么办 科学总是考不好怎么办 初三学生数学不好怎么办 初三学生语文不好怎么办 初三学生英语不好怎么办 初三学生学习不好怎么办? 客户说不考虑怎么办 单位体检有乙肝怎么办 厂里体检出乙肝怎么办 厂里体检有乙肝怎么办