android單元測試

姜家志發表於2016-07-01

Android的單元測試有兩種方式:本地單元測試裝置單元測試本地單元測試可以直接執行在本地機器上面的Java Virtual Machine(JVM)上面。它的特點是執行時間短,執行效率高,但是不依賴Android framework,每個檔案都可以進行單獨的測試。
執行在裝置上的單元測試,執行的是一個單獨的APK,直接執行到虛擬機器或者裝置上,這種單元測試擁有整個App的生命週期和執行環境。
這裡主要介紹執行裝置上的單元測試為主。

測試檔案在哪?

下面是一個Android專案的基本結構:

android單元測試

Android專案結構

其中../app/src/test/java目錄下是本地單元測試的檔案目錄。
../app/src/androidTest/java目錄下就是裝置單元測試的檔案目錄。

配置測試環境

首先需要引入單元測試的依賴庫,在AndroidManifest.xml裡面新增uses-library

配置單元測試框架的啟動項:

android.test.InstrumentationTestRunner是Android單元測試其中的一個啟動項,用來啟動單元測試。
com.android.test.runner.MultiDexTestRunner是另一個單元測試的啟動項用來啟動MultiDex的專案。
設定android:targetPackage與專案的package相同,這樣當前單元測試的執行和應用程式是在一個程式裡面。

編寫測試程式碼

在專案中增加一個方法用來比較兩個字串的是否相等,在對該方法進行做單元測試:

增加方法compare的單元測試程式碼,在../app/src/androidTest/java/com.jjz新增檔案StringUtilTest.java

需要注意的是類名必須使用Test結尾,需要繼承AndroidTestCase,單元測試的方法需要使用test開頭。

執行

../app/androidTest/java資料夾上面,可以看到執行單元測試的按鈕:

android單元測試

Run all tests

直接點選Run all tests,可以看到執行單元測試的結果:

android單元測試

測試結果

原始碼地址:https://github.com/jjz/android/tree/master/experimental

相關文章