上一章中已經完成了一個簡單的測試,但是有一點不太方便:需要接上Android 裝置。這點不符合FIRST中的Fast,所以現在要來使用更快速的測試方法
Test Artifact
Android Studio 1.1 之後提供了兩種 Test Artifact,一種是上一章使用的 Android Instrumentation Tests,另外一個則是即將要介紹的 Unit Tests。Test Artifact 設定如下圖所示:
Unit Tests 設定
1. 切換 Test Artifact
點選左邊的Build Variants -> Test Artifacts -> Unit Tests
2. 測試資料夾
點選之後會發現原來的 androidTest 資料夾會變成不能使用
在src底下建立新的test資料夾,並將測試碼寫在這裡
在現在的版本中都不需要手動增加了,Android Studio 會自動建好test資料夾並新增一個ExampleTest.java
- androidTest 資料夾對應 Android Instrumentation Tests,可以用來執行與 Android 元件相關的測試
- test 資料夾對應 Unit Tests,無法執行與Android 元件相關的測試(但是使用Robolectric可以突破這限制)
執行測試
程式碼
public class MyMathTest {
@Test
public void add_first_1_second_2_equals_3(){
//arrange
int first = 1;
int second = 2;
int expect = 3;
MyMath myMath = new MyMath();
//act
int actual = myMath.add(first, second);
//assert
Assert.assertEquals(expect, actual);
}
}
這邊的測試碼風格與上一章不同,這裡使用Junit4 來執行測試
4. 執行
與上一次測試一樣,在 MyMathTest 點擊右鍵->Run 'MyMathTest'。 最後執行,綠燈通過測試!!