天天看點

Android學習筆記之如何對應用進行單元測試

開發環境:

  在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()方法時,會給出如下提示:

Android學習筆記之如何對應用進行單元測試

  當然,save()從第六位開始取子字元串,但是該方法現在的參數為null,會發生空指針異常。

最新内容請見作者的github頁:http://qaseven.github.io/