前面学习了instrumentation框架,现在来学习robotium了解怎么使用不就是一个晚上的事吗,robotium也是基于Instrumentation框架的。一般用于app的功能性测试,不能跨app一次只能运行一个app。
好了下面就开始新建robotium工程。首先我们要去官网下载robotium jar包,下载最新的就好了。这里是下载地址:https://code.google.com/p/robotium/wiki/Downloads?tm=2,下载完了后就该导入到测试工程里了。
1.跟之前的instrumentation一样的建立个测试工程,继承ActivityInstrumentationTestCase2.工程建立好后,右键点击测试工程,选择build path——>configure build path 如图创建 Robotium 测试工程_robotium
在弹出的对话框里的libraries里选择add external jars里添加我们之前下载的robotium jar包,这就导入好了robotium jar包了。创建 Robotium 测试工程_robotium_02
我们在点击order and export选项,在这里面勾选robotium jar包。创建 Robotium 测试工程_robotium_03
然后点击ok,这样我们就可以开始写代码了。
2.这里还是用之前的那个app,这是一个很简单的app,由于之前的那个instrumentation工程大家都不知道app是什么样的,这里就贴个图,主界面是这样的创建 Robotium 测试工程_robotium_04点击左边的button上面的Hello World!会变成Beautiful Girl创建 Robotium 测试工程_robotium_05
点击右边的跳转会跳转到另一个界面,如图创建 Robotium 测试工程_robotium_06
就是这么一个app。同样我们要在manifest.xml文件里加上instrumentation这个标签,因为robotium也是继承的这个类。跟上一个工程一样,创建 Robotium 测试工程_robotium_07
然后就开始写代码了,robotium的调用很简单,用solo这个类去调用,我们这里同时加入了上一篇文章instrumentation的方法,首先是声明我们会用到的控件和activity,这里我要用到instrumentation里面assertEquals这个方法去断言textview,所以要定义textview1、activity这两个变量。创建 Robotium 测试工程_robotium_08
然后是在默认的setUp()这个方法里去获取我们的控件和avitivity这些获取的方法必须写在setUp()这个方法里,因为setUp()这个方法是在执行每个case前都会执行的重置app把app还原的方法,tearDown()这个方法是在执行完每个case后都会执行的清空app数据的方法。所以这些获取控件的方法必须要定义在setUp()这个方法里让执行每个case前重新去获取。创建 Robotium 测试工程_robotium_09
下面就可以开始写我们想要测试的case了,用robotium里面的solo这个方法去调用这些方法,这些方法可以去看robotium的源码,了解了robotium里的这些方法就随便调用就是了,我现在也一直在看,下面我会发出一个我在github上看到的一位大神对robotium源码全部注释了的链接,大家可以去下载看看。创建 Robotium 测试工程_robotium_10
好了,这就是一个简单的用robotium工具实现的测试case,这里只是告诉了大家怎么去用robotium工具,没有去讲解robotium的源码是怎么实现这些操作的,大家可以去深入的了解robotium源码,这样对robotium里定义的方法都熟悉了调用起来也就方便了。Robotium的源码注释链接:https://github.com/bobotiger2/robotium