对应用进行单元测试(AndroidJunitTest)

本文介绍了如何创建一个AndroidJUnitTest项目,并针对一个PersonService类进行单元测试。首先修改AndroidManifest.xml以添加测试框架所需的配置,然后创建测试类PersonServiceTest,继承AndroidTestCase,并编写测试方法testSave()。测试过程中,使用Assert.assertEquals进行断言,同时通过Logcat查看测试输出信息。测试过程中遇到的错误是将无法解析的字符串'chenzhiming'作为integer解析,导致NumberFormatException。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

00 新建一个AndroidJunitTest项目

01 修改AndroidManifest.xml文件,添加测试框架需要的文件。

<manifest>
    <uses-sdk android:minSdkVersion="8" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />    
    <!-- 在应用程序内进行测试,所以放在Application中,但不是在Activity中 -->
        <activity
            
        </activity>
    </application>
    
    <instrumentation android:name="android.test.InstrumentationTestRunner" 
android:targetPackage="czm.android.junitest" android:label="Tests for my APPs"></instrumentation>

<!-- 单元测试类所在的包 -->

</manifest>


02 新建一个测试包Junitest和Service包,写一个等待测试的业务类PersonService。
我们要测试Service包中的PersonService类,所以我们在Junitest包中新建一个继承AndroidTestCase的类PersonServiceTest。
PersonServiceTest extends AndroidTestCase

------------------------------------------------------------------------------------

//PersonService.java

package czm.android.service;
public class PersonService {
public int save(){
String s = "123";
int i = new Integer(s);
return i;
}
}

--------------------------------------------------------------------------------

//PersonServiceTest.java

package czm.android.junitest;
import junit.framework.Assert;
import android.test.AndroidTestCase;
import czm.android.service.*;

public class PersonServiceTest extends AndroidTestCase {
public void testSave() throws Throwable{
PersonService ps = new PersonService();
int x = ps.save();

//Log.i(TAG,"result="+x);         //用Log来输出测试信息 易于用标签查找
//System.out.println("result="+x);  //不推荐使用System,不以查找错误信息
Assert.assertEquals(120, x);  //断言:期望值是120,实际值是123,Junit会输出错误信息
}
}

---------------------------------------------------------------------------------

说明:

00 Android Junitest应用程序中并不会显示任何测试信息,控制台(Console)上也不会显示任何测试信息,但是会提示已经发送测试信息到Eclipse,那么我们就可以打开Logcat视图查看测试信息。

01 Junit视图中的错误信息:
java.lang.NumberFormatException: unable to parse 'chenzhiming' as integer
at java.lang.Integer.parse(Integer.java:433)

03 添加了Log之后,以标签的形式在Log视图中就可以通过过滤器(Filter)添加标签的形式查找所需要的测试信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值