在javase/ee 的开发中,我们对业务方法的测试一般使用“main函数”的方法,也可以使用junit的方法。在android环境下,由于程序运行在Dalvik虚拟机上,我们无法在业务类中使用“main函数”的方式进行测试了。
android下junit测试框架,实际上是先把app打包成apk上传到虚拟机,然后给模拟器发送一些指令来完成测试。
第一步:首先在AndroidManifest.xml中加入下面代码:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="hb.learn.junit"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="8" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <!-- 在本应用中导入需要使用的包,放在application里面activity外面 -->
- <uses-library android:name="android.test.runner" />
- <activity android:name=".JunitTestActivity"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <!-- 记住这个一要放在application外面,不然会出现配置错误 信息 -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="hb.learn.junit" android:label="Tests for My App" />
- </manifest>
上面targetPackage指定的包要和应用的package相同(即AndroidManifest.xml中 manifest节点中的package)。android中,app程序是根据报名区分的。
第二步:编写单元测试代码(选择要测试的方法,右键点击“Run As”--“Android Junit Test” ):
- import android.test.AndroidTestCase;
- import android.util.Log;
- public class XMLTest extends AndroidTestCase {
- public void testSomething() throws Throwable {
- Assert.assertTrue(1 + 1 == 3);