Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

问题:

你想要使用Robotium库测试activity。

解决方案:

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

讨论:

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

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

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

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

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

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

上一篇:jmeter(三)SOAP/XML-RPC Request


下一篇:洛谷P3195 [HNOI2008] 玩具装箱 [DP,斜率优化,单调队列优化]