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)添加标签的形式查找所需要的测试信息。