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)判断值是否为空

你可能感兴趣的:(Instrumentation)