Android自动化测试框架Espresso(一)——简介

辛苦堆砌,转载请注明出处,谢谢!


最近一段时间工作中使用了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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值