Instrumentation
1、Instrumentation单元测试框架,基于Junit;Junit是java单元测试根本
2、想要进行自动化测试的基础:
(1)对待测系统组建深入了解
(2)系统测试框架分析
(3)丰富的测试理论知识
3、安卓系统的组件:
(1)Activity:应用程序的界面,每个界面都可成为一个Activity;Activity之间通过Intent通信;界面控件,用于监听并对用户的事件作出响应
(2)Service:后台服务程序
(3)Content Provider:将指定的数据集提供给其他应用程序,其他应用可以通过ContentResolver类获取数据。
(4)Broadcast:通过通知栏显示消息。系统通过NotificationManager通知其他组件,也可以通过启动一个Activity或者Service来响应接收到的消息
4、安卓测试套件基于:Junit、Instrumentation;对于调用安卓组件的项目:可以通过Instrumentation进行单元测试或者自动化测试。
5、Instrumentation类通过“hooks”控制安卓组件的生命周期和安卓系统加载应用程序。
6、所有控件都运行在同一个进程中,无法将一个应用个另外一个应用在同一个进程中运行。
7、Instrumentation API:
(1)getActivity():获取应用;未调用此方法时,应用不会启动
(2)findViewById()
(3)setSpinnerPosition():设置下拉列表框位置
(4)getSpinnerPosition():获取下拉列表框当前位置
(5)assertEquals():判断
8、完整的自动化用例:
(1)开始前的资源准备-------------------Setup()方法------黑盒测试中的“预置条件”
(2)用例步骤执行以及验证点检验----Assert()方法-----黑盒测试中的“测试步骤”
(3)测试用例结束后的环境清理----Teardown()方法
9、Junit原理:类似于黑盒测试;都会考虑执行前的“前提条件”,用例执行结束之后对测试环境进行“清理”,以确保每个用例相对独立。Junit利用断言(assert)将一个个检查点封装好。
框架代码如下:
setUp(){...}
testMethod1(){...}
testMethod2(){...}
tearDown(){...}
10、常见断言:
(1)assertTrue([String msg] , boolean condition)判断条件是否为真
(2)assertFalse([String msg] , boolean condition)判断条件是否为假
(3)assertEquals([String msg] , expected , actual)判断预期值与实际值是否一致
(4)assertNull([String msg] , java.lang.Object object)判断值是否为空