Android单元测试 Instrumentation

Android整合了JUnit测试框架和Instrumentation机制

      JUnit是广泛应用于java程序开发中的单元测试框架,定义了特定格式的方法作为测试用例,提供TestSuite(测试套件)和TestRunner(测试执行器)分别用于组织测试用例和运行测试用例,并反馈测试结果。

      Instrumentataion则是一种操作系统和上层应用之间的检测机制。当应用程序运行时,若Instrumentataon设置为开启,它将在应用程序运行前初始化,与应用程序在同一个进程中,监测应用程序与系统之间的交互,并对应用程序进行一定的控制,例如可以监控应用程序各Activity的调用情况、启动和结束Activity、对Activity生命周期中的各个状态进行切换,甚至可以向Activity发送按键事件和字符,图1展示Android中的Instrumentation测试的构架

      Instrumentataion和Activity有点类似,不同的是Activity需要一个界面,而Instrumentation并不需要,可以理解为一种没有图形界面的、具有启动能力、用户监控其他类(用Target Package声明)的工具类。

      在Android中,有关测试的类都集成自Test-Case抽象类,它实际上就是JUnit的Instrumentation扩展,其中又包括InstrumentationTestCase和AndroidTestCase,图2展示了详细的Android Instrumentation测试框架。


       当需要测试某个应用程序时,可以直接从上面的类中派生一个子类即可。例如,要测试一个HelloWorld程序,其Activity名称HelloWorld,就可以创建一个继承自ActivityTestCase的子类HelloWorldTest来对其Activity进行测试;其超类中提供了一些受保护的方法。例如setUp()可以用来初始设置,如启动一个Activity、初始化资源等;tearDown()可以用来立即清理与资源回收。

       编写完测试用例还需要修改AndroidManifest.xml文件,首先需要引入测试库,并指明需要被测试的目标package,代码如下:


<instrumentation      

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="com.example.android.snake" />


原链接:http://hi.baidu.com/shenhuanyu09/item/91c57656107e47c79e2667b4

你可能感兴趣的:(Instrumentation)