问题:

你想要使用Robotium库测试activity。

解决方案:

增加Robotium依赖,编写自己的测试脚本。

讨论:

Android Test Support Library提供类可以操作activity里的窗口部件,但是有更简单的方式操作Android UI。虽然这本书不是介绍测试的,但是可以很容易的将Robotium依赖增加到Gradle然后运行测试。

Robotium项目被描述成“像Selenium,但是为了Android”。这是一个自动化测试框架,可以很方便的为Android app编写出黑盒的UI测试。

只要在模块下面的Gradle配置文件里面增加Robotium的依赖:

考虑下面的叫做MyActivity的简单的activity,提示用户输入姓名,将它添加到Intent,打开WelcomeActivity欢迎用户:

Robotium提供了一个叫做com.robotium.solo.Solo,它包括了被测试的activity和Instrumentation对象。它允许你增加文字,点击按钮,和更多的操作,而不用担心是不是在UI线程。下面展示了一个在activity上的例子:

Robotium测试继承自ActivityInstrumentationTestCase2。Solo实例和activity一起被初始化。测试使用Solo类的方法,像enterText,clickOnButton或者searchText。

使用Robotium唯一的缺点就是测试使用旧的JUnit3的结构,有预先定义的setUp和tearDown方法,所有测试必须符合public void testXYZ格式。相对的,易于书写的测试还是很突出的。

测试类像其它Android测试易于存放在androidTest结构下面。通过connectedCheck任务在所有模拟器和连接的设备上执行。

下面显示在两个模拟器上运行的结果:

点击“Devices”按钮显示从device角度显示相同的结果:

Robotium的Github地址:https://github.com/robotiumtech/robotium

最新文章

  1. JQuery常用方法一览
  2. Spring源码学习之:FactoryBean的使用
  3. Git--用git建立code库
  4. JavaScript实现级联下拉框
  5. 添加Java文档注释
  6. Buffer
  7. About Technology Research
  8. 利用jink调试程序,时间不准的解决办法
  9. Eclipse中如何显示代码行
  10. 【bzoj4568 scoi2016】幸运数字
  11. Codeforces 1110D Jongmah [DP]
  12. hdu4777 树状数组
  13. python 浅析模块,包及其相关用法
  14. SRM480
  15. VS2015 WPF Prism Xaml Designer error
  16. Codeforces Round #352 (Div. 2) B. Different is Good 水题
  17. Hadoop-2.2.0中文文档——Common-Hadoop HTTP web控制台认证
  18. HttpClient简述
  19. gcc 学习笔记(一) - 编译C程序 及 编译过程
  20. 主机不能访问虚拟机中的web服务【解决方案】

热门文章

  1. python selenium --browser 操作
  2. Mongodb - TTL(time to live)特性
  3. C++设计模式之适配器模式(三)
  4. OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载
  5. Laravel自定义分页样式
  6. atitit.浏览器插件解决方案----ftp插件 attilax 总结
  7. log4j 具体解说(不能再具体了)
  8. redis源码学习_字典
  9. [Delphi] 常用字符集简介
  10. 0046 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚