Android学习笔记之如何对应用进行单元测试

Azura ·
更新时间:2024-09-20
· 871 次阅读

  开发环境:   Win XP + eclipse-jee-helios(版本号3.6) + ADT(版本10.0.1) + Android SDK(版本10);   模拟器及真机测试环境:Android2.2   在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,会发生空指针异常。



android学习 单元 单元测试 测试 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号