使用Espresso测试记录
准备工作
- 建立测试项目
- 添加测试依赖
- 编写Espresso测试
- 运行测试并检查测试结果
建立测试项目
使用Android Studio建立测试项目,Activity模版使用 LoginActivity,AS会自动生成一个LoginActivity。
添加Espresso依赖
androidTestCompile 'com.android.support:support-annotations:23.0.1'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
指定TestRunner
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
编写测试
这里测试上面的自动建立的LoginActivity
。在src/androidTest/com/lw/espresso/ui目录下建立TestLoginActivity
。
@RunWith(AndroidJUnit4.class)
@MediumTest()
public class TestLoginActivity {
@Rule
public ActivityTestRule<LoginActivity> rule = new ActivityTestRule<>(LoginActivity.class);
@Test
public void testLogin(){
String userName = "123@123.com";
String pwd = "123456";
/*
1. 首先找到输入Email的EditText
2. 输入userName
3. 检查不为空
*/
ViewInteraction emailView = Espresso.onView(ViewMatchers.withId(R.id.email))
.perform(ViewActions.typeText(userName))
.perform(ViewActions.closeSoftKeyboard())
.check(ViewAssertions.matches(ViewMatchers.withText(Matchers.not(Matchers.isEmptyOrNullString()))));
ViewInteraction pwdView = Espresso.onView(ViewMatchers.withId(R.id.password))
.perform(ViewActions.typeText(pwd))
.perform(ViewActions.closeSoftKeyboard())
.check(ViewAssertions.matches(ViewMatchers.withText(Matchers.not(Matchers.isEmptyOrNullString()))));
Espresso.onView(ViewMatchers.withId(R.id.email_sign_in_button))
.check(ViewAssertions.matches(ViewMatchers.isEnabled()))
.check(ViewAssertions.matches(ViewMatchers.isClickable()))
.perform(ViewActions.click());
}
}
用到的类:
ViewInteration
: 用来模拟View
的类,可以在执行ViewAction
和检查View
ViewAction
: 代表click
、typeText
等事件ViewMatcher
: 用于匹配View
和验证View
ViewAssertion
: 验证View
正确性
ViewActions
、ViewMatchers
、ViewAssertions
都是对上面类的一些封闭里面包含了很多静态方法。
运行测试
运行前要关闭所有动画可以在开发者选项中关闭,然后Run testLogin
。测试的Activity尽量不要Activity里面运行finish方法,如果你的Activity已经关闭了但你的测试还在跑的话测试会失败。还有不知道算不算个Bug如果你的EditText的error是个空的话,当你调用ViewMatchers.hasErrorText的时候会报空指针异常。
使用Espresso测试记录的更多相关文章
- linux .net mono方案测试记录与报告(一)
第一阶段 linux .net 方案测试 硬件为4核8线程的笔记本i7-4710mq 分配了4个线程 情况下 1.方案一 nginx+fastcgi-mono-server4方式 性能为每秒处理140 ...
- Yii 增删改查 测试记录
亲们, 我是yii小白 不要笑话我奥.今天白天写一个管理模块涉及到 yii ar 下的 curd 操作,做 update 操作时纠结了好久,今天晚上花点时间学习, 下面写下我的测试记录 代码如下: ...
- Office隐藏17年的漏洞CVE_2017_11882测试记录
Office隐藏17年的漏洞CVE_2017_11882测试记录 创建时间: 2017/11/25 0:18 作者: CN_Simo 标签: Office漏洞 参考文章1:https://www.cn ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.4——使用Espresso测试Activity
问题: 你想要使用Google的Espresso测试Activity. 解决方案: 在Gradle配置里面增加Espresso,书写测试脚本. 讨论: Espresso测试库已经被添加进“Androi ...
- HDFS部署测试记录(2019/05)
目录 HDFS部署测试记录 0.HDFS基础知识 1.基本组成结构与文件访问过程 2.NameNode启动时如何维护元数据 3.HDFS文件上传流程 1.系统环境 1.安装大致记录: 2.磁盘分区 3 ...
- [转]Rapid Reporter——轻量级ET测试记录工具
下载地址:http://testing.gershon.info/reporter/ 特别感谢:邰晓梅老师 在一次ET的在线培训课程,邰晓梅老师使用的是这个工具. Rapid Reproter,是一款 ...
- linux下开发板网络速度测试记录
由于做的项目对于网络和USB的读写速度有很高的要求,因此新拿回来的板子要测试网络和usb的最佳传输速度.要考虑不少因素,先把我能想到的记录下来. 测试的环境是开发板和ubuntu虚拟机 ...
- 堡垒机jumpserver测试记录--使用
快速入门 截图就不放了,官网都有,这里只是就遇到的一些问题做下记录 必备条件 一台安装好 Jumpserver 系统的可用主机(堡垒机) 一台或多台可用的 Linux.Windows资产设备(被管理的 ...
- 堡垒机jumpserver测试记录--安装
一步一步安装(CentOS) 基本都是官网的东西,只是有些坑做了记录. http://docs.jumpserver.org/zh/docs/step_by_step.html 环境 系统: Cent ...
随机推荐
- 04_枚举类型iota
iota是枚举类型的关键字,使用iota可以方便快捷的给常量赋值,主要体现在以下几个方面:1.iota常量自动生成器,每个一行加12.iota给常量赋值使用3.iota遇到const重置为04.可以写 ...
- Mac应用程序无法打开或文件损坏的处理方法你知道吗?
很多用户在安装Mac软件的时候,经常会遇到提示“xxx.app已损坏,打不开.您应该将它移到废纸篓“或”打不开的xxx.app,因为它来自身份不明的开发者”,如下图的样子: 真的损坏了么?是不是真的要 ...
- HDU 5984 题解 数学推导 期望
Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorative s ...
- 问题.beego路由设置及请求参数传递
最近项目组安排将一组Lua实现的web服务端代码重构成Go实现,所以顺便学习了下Lua和Go,这里记录下在尝试重构的过程中遇到的几个问题. 1.beego路由设置 路由设置简单说下,主要是调用了pac ...
- 牛客小白月赛4 I 合唱队形 思维 字符串
链接:https://www.nowcoder.com/acm/contest/134/I来源:牛客网 题目描述 铁子的班级在毕业晚会有一个合唱节目,到了毕业晚会的时候,他们必须排成一排一起合唱&qu ...
- codeforces 816 C. Karen and Game(模拟+思维)
题目链接:http://codeforces.com/contest/816/problem/C 题意:给出一个矩阵,问能否从都是0的情况下只将一整行+1或者一整列+1变形过来,如果可以输出需要步数最 ...
- hdu 3374 String Problem(最小表示法+最大表示法+kmp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374 题意:给出一个字符串问这个字符串最小表示的最小位置在哪,还有有几个最小表示的串.最大表示的位置在 ...
- php preg_match pcre回溯绕过
原理需要知识:正则NFA回溯原理,php的pcre.backtrack_limit设置. 正则NFA回溯原理正则表达式是一个可以被"有限状态自动机"接受的语言类."有限状 ...
- 第四篇 跟踪过程以及openvslam中的相关实现详解
在成功初始化之后,会创建地图以及局部地图. 创建地图 在初始化正常过后,紧接着会创建地图 // src/openvslam/module/initializer.cc:67 // create new ...
- MySQL和mybatis查询相关
0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...