Android Instrumentation 测试

来源:互联网 发布:高清网络机顶盒价格 编辑:程序博客网 时间:2024/05/22 15:36

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

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

       instrumentation声明了用来测试此package或其他package指令组件的代码。见Instrumentation来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

       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


还一篇可参考:http://www.360doc.com/content/11/1123/09/3776353_166661981.shtml



0 0
原创粉丝点击