Android整合了JUnit測試框架和Instrumentation機制
JUnit是廣泛應用於java程序開發中的單元測試框架,定義了特定格式的方法作爲測試用例,提供TestSuite(測試套件)和TestRunner(測試執行器)分別用於組織測試用例和運行測試用例,並反饋測試結果。
instrumentation聲明瞭用來測試此package或其他package指令組件的代碼。見Instrumentation來獲得許可的更多的信息。一個manifest能包含零個或更多此元素。
Instrumentataion則是一種操作系統和上層應用之間的檢測機制。當應用程序運行時,若Instrumentataon設置爲開啓,它將在應用程序運行前初始化,與應用程序在同一個進程中,監測應用程序與系統之間的交互,並對應用程序進行一定的控制,例如可以監控應用程序各Activity的調用情況、啓動和結束Activity、對Activity生命週期中的各個狀態進行切換,甚至可以向Activity發送按鍵事件和字符,圖1展示Android中的Instrumentation測試的構架
Instrumentataion和Activity有點類似,不同的是Activity需要一個界面,而Instrumentation並不需要,可以理解爲一種沒有圖形界面的、具有啓動能力、用戶監控其他類(用Target Package聲明)的工具類。
在Android中,有關測試的類都集成自Test-Case抽象類,它實際上就是JUnit的Instrumentation擴展,其中又包括InstrumentationTestCase和AndroidTestCase,圖2展示了詳細的Android Instrumentation測試框架。
當需要測試某個應用程序時,可以直接從上面的類中派生一個子類即可。例如,要測試一個HelloWorld程序,其Activity名稱HelloWorld,就可以創建一個繼承自ActivityTestCase的子類HelloWorldTest來對其Activity進行測試;其超類中提供了一些受保護的方法。例如setUp()可以用來初始設置,如啓動一個Activity、初始化資源等;tearDown()可以用來立即清理與資源回收。
編寫完測試用例還需要修改AndroidManifest.xml文件,首先需要引入測試庫,並指明需要被測試的目標package,代碼如下:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.android.snake" />
原文轉載自:http://hi.baidu.com/shenhuanyu09/item/91c57656107e47c79e2667b4
還一篇可參考:http://www.360doc.com/content/11/1123/09/3776353_166661981.shtml