Android單元測試
如果想在android里面做單元測試,有兩條基本的路子可行。
第一, 就是java程序員最為熟悉和常用的JUnit, 但是由于目前android sdk (version 1.1)中只是提供了stubbed methods/classes,沒(méi)有具體的實(shí)現代碼,所以如果用JUnit的話(huà),我們需要在運行單元測試時(shí),一定要 用JDK來(lái)運行,利用java命令來(lái)啟動(dòng)JUnit的某個(gè)Runner。如果是用Eclipse的話(huà),可以在Run Configuration里新建一個(gè)JUnit。但是一定要記得在Classpath選項卡里將Bootstrap Entries中的Android Library改成JRE,并且添加junit.jar。具體的設置可以參考:http://developer.android.com/guide/appendix/faq/troubleshooting.html#addjunit。 而且,更為遺憾的是,這種方法運行的JUnit運行在JDK之上的,而不是android,所以,只能測試一些和android無(wú)關(guān)的東西,比如業(yè)務(wù)邏輯,數據封裝,數值計算等等。并不能測試android api。
第二, 采用Instrumentation. Android單元測試的主入口是InstrumentationTestRunner。它相當于JUnit當中TestRunner的作用。你可以將Instrumentation理解為一種沒(méi)有圖形界面的,具有啟動(dòng)能力的,用于監控其他類(lèi)(用Target Package聲明)的工具類(lèi)。任何想成為Instrumentation的類(lèi)必須繼承android.app.Instrumentation。
下面通過(guò)一個(gè)實(shí)例來(lái)看一下如何通過(guò)Instrumentation來(lái)做單元測試。
Step 1.首先編寫(xiě)需要測試的activity:
package com.android.ut; import android.app.Activity; public class AndroidUT extends Activity { |
Step 2.
接下來(lái)編寫(xiě)測試類(lèi),其中主要來(lái)測試add()方法。我們在當前代碼目錄下,在新建一個(gè)文件夾,命名為test,并在里面新建了包c(diǎn)om.android.ut.test。然后往里面新增加一個(gè)class.具體如下:
package com.android.ut.test; import com.android.ut.AndroidUT; import android.test.ActivityInstrumentationTestCase; public class TestApp extends ActivityInstrumentationTestCase<AndroidUT> { |
Step 3.最后一步就是要改一下Manifest文件。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.ut" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".AndroidUT" 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:targetPackage="com.android.ut" android:name="android.test.InstrumentationTestRunner" android:label="Test Unit Tests"></instrumentation> </manifest> |
需要注意的是,在這里面我加上了:
以及:
Step 4.運行
首先通過(guò)模擬器運行一下AndroidUT,然后在命令行終端中運行
adb shell am instrument -e class com.android.ut.test.TestApp -wcom.android.ut/android.test.InstrumentationTestRunner
這樣你就可以看到測試結果了。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/