Android Instrumentation 測試

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章