开发环境:
Win XP + eclipse-jee-helios(版本号3.6) + ADT(版本10.0.1) +
Android SDK(版本10);
在Android软件的开发过程中,可以使用Junit测试框架。在Junit中可以得到组件,可以模拟发送事件和测试程序处理的正确性。
第一步:在新建项目中,创建待测试的业务类,在cn.hao.service包中,代码如下:
package cn.hao.service; //业务类,待测试的两个方法 public class PersonaService { public void save(String username){ String sub = username.substring(6); } public int add(int a,int b){ return a+b; } } |
说明:对于save()方法,如果参数为null,那么这个方法会发生错误;对add()方法,我们测试相加返回的相加结果是否正确。
在AndroidManifest.xml中加入如下代码:
<uses-library android:name="android.test.runner"/>
<instrumentation android:name="android.test.instrumentationTestRunner"
android:targetPackage="cn.hao.JunitTest" android:label="
Test for My App" />
引入的位置如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.hao.JunitTest" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="cn.hao.test.MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <uses-library android:name="android.test.runner"/> </application> <instrumentation android:name="android.test.instrumentationTestRunner" android:targetPackage="cn.hao.JunitTest" android:label="App Test" /> </manifest> |
说明:在项目中使用单元测试,就是检查程序及处理结果的正确性。
第三步:新建一个类,测试业务类,代码如下:
package cn.hao.junit; import junit.framework.Assert; import cn.hao.service.PersonaService; import android.test.AndroidTestCase; public class PersonServiceTest extends AndroidTestCase { public void testSave() throws Exception { PersonaService service = new PersonaService();//new出测试对象 service.save(null); } public void testAdd() throws Exception { PersonaService service = new PersonaService(); int actual = service.add(1, 2); Assert.assertEquals(3, actual); } } |
注意:该类需继承单元测试框架父类android.test.AndroidTestCase类,测试方法最好是抛出异常给测试框架。方法Assert.assertEquals(3, actual)中参数3是期望(理论上)返回的果,actual是实际上返回的结果。
第四步:运行测试类
在大纲OutLine视图中,右击测试方法->Run As->Android Junit Test,会将项目自动部署到模拟器上,测试的结果会以颜色的形式显示,绿色表示方法正确,否则该方法不正确,Eclipse会给出详细的说明,根据帮助文档可以查看相应的错误信息。
如测试上述testSave()方法时,会给出如下提示:
当然,save()从第六位开始取子字符串,但是该方法现在的参数为null,会发生空指针异常。