開發環境:
在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"
引入的位置如下:
<?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,會發生空指針異常。
最新内容請見作者的github頁:http://qaseven.github.io/