今天會透過https://codelabs.developers.google.com/codelabs/android-training-unit-tests/index.html
來學習如何撰寫單元測試
首先先去clone專案
https://github.com/google-developer-training/android-fundamentals-starter-apps-v2
然後在android studio運行底下的
SimpleCalc
同時別忘了在build.gradle新增build版本
build.gradle(module:app)
android {
...
buildToolsVersion = '27.0.3'
}
接著打開CalculatorTest.java(位置如下圖)
打開專案後
注意以下幾點
-注意看專案上方的import 這個class並沒有依賴Android framework classes
-addTwoNumbers()為一個測試案例 注意 只有標註@Test的function才會被測試框架執行測試
-addTwoNumbers()第一行是從Calculator運行add() function 你只能運行public的方法 private的不行
-第二行是測試斷點 本例來說就是 add(1 + 1) 結果要是2測試才會通過 否則fail
接著來運行一次test
你可以點擊class旁的箭頭運行(如附圖)
順利通過的話會如附圖顯示(注意fun旁邊有綠色勾勾)
接著我們故意把斷點設成錯的 看看結果會如何
將assertThat改為下列
assertThat(resultAdd, is(equalTo(3d)));
再舉個例外狀況的測試例子
@Test(expected = IllegalArgumentException.class)
public void divByZeroThrows() {
double resultDiv = mCalculator.div(32d, 0);
if (resultDiv == Double.POSITIVE_INFINITY) throw new IllegalArgumentException();
}
以上就是基本的測試範例
如果function有使用到android framework 那麼測起來會比較麻煩
之後碰到再詳細說明
今天的solution
https://github.com/google-developer-training/android-fundamentals-apps-v2/tree/master/SimpleCalcTest