Instrumentation 是安卓官方提供的自动化测试框架,android 所用的测试工具都是基于 instrumentation 框架建立的,接下来讲讲怎么创建一个 instrumentation 测试工程:
1.这里有两种方式来创建:
<1.直接在被测工程下的 src 目录下新建一个 package 如图,
在 packageName 处填写包名,一般的是直接在被测程序的包名后加.test 的后缀。完成后点击 finish,这样在 src 目录下就会多出一个刚创建的包。
然后再包名上点击右键依次点击 New——>JUnit Test Case
进入 new junit test case 界面后再 name 出填写测试类的名字,勾选 setUp() 和 tearDown() 两个方法。
在 Superclass 选项处点击 browse 选项,选择 ActivityInstrumentationTestCase2 这个选项点击 ok 后点击 finish。测试包就创建好了。
这种方式创建的测试工程,在测试完成后,产品发布时把测试包删除就可以了,这样创建的工程有一个不好的地方是,对产品做回归测试时或着是产品发布后,对产品有了更新有了新 feature 时就又得重新写了,不方便后续的拿过来用。
<2.第二种创建测试工程的方法:点击菜单上的 New——>Project 进入,在 new project 的选项窗口点击 android test project——>点击 next 在 project name 处填写测试工程的名字。
弹出的 test project 窗口点击已存在的工程,在下面选择我们要测试的工程,这里是 HelloWorldDemo,选择好后点击 next 选择要测试的 sdk target 点击 finish 就创建完成了。接下来的就在创建好的测试工程里在测试包上右键 new——>junit test case,接下来的步骤跟上面第一种方法是一样的了。这种方式创建的工程后续产品发布后或有了新 feature 后,也可以再次对产品做测试。
这两种方法创建时有个最大的区别就是,第一种方法创建时,你要在被测工程的 manifest.xml 文件里加上 instrumentation 这个标签,而且这个标签必须放在的外面也就是放在最后。
同时还要加上 uses-library 这个标签,这个标签是放在第一个的后面,不然会显示错误。
2.工程创建好了,按就是写代码了.这里就是体现真功夫的时候了,这个需要你懂 java 懂点 android 开发知识。打开创建好的工程可以看到它是长这样的。
然后我们再来修改和在里面添加方法。首先我们要做的就是指定我们要测试的包名和类名。指定完之后代码是这样的,
接下来就是指定你要测试的 textview 和 button 了。先申明要测 textview 和 button。就是用 findViewByID() 这样一个方法去定位你的 textview 和 button 的。定位完控件后的代码是长这样的。
们这里是要准备对一个 textview 和 button 做测试的。所以声明定义了 textview 和 button。
注意:这里要用到一个 getActivity() 的方法来获取我们的所要测试的活动单元。
下面我们就分别写两个测试 textview 和 button 的函数,如图是两个测试函数
3.简单的测试用例写好了,下面就是开始跑了,在测试工程上右键点击 run as——>android junit test
跑成功之后就会右边弹出 junit 信息,每个用例测试时用了多上时间,都会显示出来。
如果测试的结果和预期的不对,下面就显示哪个测试用例不对,并且下面有具体的错误信息。这样就可以查看错误信息来确定被测程序的是否合乎设计需求。这里是改过之后,把 assertEquals() 方法里的 Gril 去掉一个 l,此时显示第一个测试用例没通过,错误信息提示 Gir 后面多了个 l。