Android系统单元测试方法(15)

发表于:2011-06-30来源:未知作者:领测软件测试网采编点击数: 标签:
applicationandroid:icon= @drawable/icon android:label= @string/app_name activityandroid:name= .TestApp android:label= @string/app_name /activity /application application android:icon=@drawable/icon an
  1. <application android:icon="@drawable/icon" android:label="@string/app_name">   
  2.   
  3. <activity android:name=".TestApp" android:label="@string/app_name">   
  4.   
  5. ……   
  6.   
  7. </activity>   
  8.   
  9. </application>  


这样,在启动程序的时候就会先启动一个Application,然后在此Application运行过程中根据情况加载相应的 Activity,而Activity是需要一个界面的。但是Instrumentation并不是这样的。你可以将Instrumentation理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。任何想成为Instrumentation的类必须继承android.app.Instrumentation。下面是这个类的解释:

Base class for implementing application instrumentation code. When running with instrumentation turned on, this class will be instantiated for you before any of the application code, allowing you to monitor all of the interaction the system has with the application. An Instrumentation implementation is described to the system through an AndroidManifest.xml's <instrumentation> tag.

对于单元测试,我们需要认真了解的就是android.test.InstrumentationTestRunner类。这是Android单元测试的主入口。它相当于JUnit当中TestRunner的作用。

那么如何加载它呢,首先要在manifest文件中加入一行关于Instrumentation的声明。比如Android Api Demos中的测试里的manifest是这么写的(我滤掉了所有的注释):

Java代码 复制代码 收藏代码
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2.   
  3. package="com.example.android.apis.tests">   
  4.   
  5. <application>   
  6.   
  7. <uses-library android:name="android.test.runner" />   
  8.   
  9. </application>   
  10.   
  11. <instrumentation android:name="android.test.InstrumentationTestRunner"  
  12.   
  13. android:targetPackage="com.example.android.apis"  
  14.   
  15. android:label="Tests for Api Demos."/>   
  16.   
  17. </manifest>  
...

热门标签