看到Juint,很多朋友都会很熟悉,没错,这个就是单元测试,JAVA里面也有这东西,今天讲的这个是Android平台上的单元测试。
首先创建一个工程后,创建一个测试类:Test.java
要记得继承AndroidTestCase,按Finish完成,以下是主程序:
Test.java
package com.example.junit;
import junit.framework.Assert;
import android.test.AndroidTestCase;
public class TestAll extends AndroidTestCase {
public void add(){
int a = 1;
int b = 3;
int c = a + b;
Assert.assertEquals(4, c);
}
}
用过java的单元测试的朋友,看到这写法一定很熟悉了,他和java的写法是完全一致的,Assert翻译为断言,至于那些啥专业的解释大伙就自己看看那些文档吧,我简单说下它的用法,就是你可以给你的程序结果有一个预测值,如果与程序算出的结果相比较,一致,juint会显示绿色,反之,则显示红色,assertEquals适合不同参数的传入,int,string,boolean等等都有。
运行下程序:选中要测试的方法,Run as ->Android JUnit Test 运行以上程序,这时候你会发现他报错了:
[2013-04-30 20:11:04 - Junit] Junit does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml。
这是什么意思呢?
它的意思是说你,运行单元测试时,你需要AndroidManifest.xml下注册和引用包。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.junit"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.junit"></instrumentation>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner"/>
<activity
android:name="com.example.junit.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>
</application>
</manifest>
其中添加的就是下面两项:
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.junit"/></instrumentation>
<uses-library android:name="android.test.runner"/>
需要特别注意的是,instrumentation 下的android:targetPackage所指定的包要与manifest的package所指定的包相一致,完成上述配置后,再次运行程序:
因为我们预测的值为4,而程序算出的值也为4,相一致,所以显示为绿色,这时,我们可以把预测的值改为5,则结果显示如下:
从上面的错误结果,你的提示是,你的预算结果是5,而真实的计算结果是4。
所以使用Juint常常被使用来做程序的逻辑测试,直观而且运行速度比你直接运行一个APP要快得多,单元测试是程序员的必修课。