Android單元測試之二:本地測試
本地測試
本地測試( Local tests):只在本地機器 JVM 上運行,以最小化執行時間,這種單元測試不依賴於 Android 框架,或者即使有依賴,也很方便使用模擬框架來模擬依賴,以達到隔離 Android 依賴的目的,模擬框架如 google 推薦的 Mockito 。
如何進行本地測試
添加依賴
dependencies {
...
implementation 'com.android.support:appcompat-v7:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestCompile 'com.android.support:support-annotations:26.1.0'
...
}
測試代碼存放的位置
app/src
|-- androidTest/java(儀器化單元測試、 UI 測試)
|-- main/java(業務代碼)
|-- test/java(本地單元測試)
測試
可以自己手動在相應目錄創建測試類, AS 也提供了一種快捷方式:選擇對應的類 -> 將光標停留在類名上 -> 按下 ALT + ENTER -> 在彈出的彈窗中選擇 Create Test 。
選擇 Create Test 選項之後,彈出下面框:
- Testing library: 測試庫
- Class Name: 測試類名
- Superclass:超類
- Destination package:指定包
- Generate:setUp/@Before:會生成一個帶 @Before 註解的 setUp() 空方法; tearDown/@After 則會生成一個帶 @After 的空方法。
- Generate test methods for:選擇下面框中需要測試的方法。Show inherited methods:是否顯示繼承的方法。
我這邊只勾選了isJudgeSysmbol(userAnswer:String,correctAnswer:String)方法測試,剩下的選項都沒有修改,點擊了OK。
在測試文件夾中就能看到測試類了:
圖片左側的兩個綠色圖標在測試類寫好之後就能點擊運行測試。
測試通過.如圖在 isJudgeSysmbol 中寫入參數和正確的返回結果,測試結果通過。
測試未通過.如圖在 isJudgeSysmbol 中寫入參數和不正確的返回結果,測試結果未通過。
總結
本地測試比較適合一些工具類測試,不需要使用任何 Android 系統的東西,只適用於測試公共方法,比如字符處理,數據整理等這些方法。