Android Studio 進行單元測試完整教程
阿新 • • 發佈:2019-02-13
前言
- 為了這個AndroidStudio的單元測試,從下午搞到晚上才搞明白咋操作。
- 我學一個新知識總是那麼坎坷,經歷無數的錯誤路徑,才可能找到正確的路在哪兒。
我的AndroidStudio
我的AndroidStudio是1.5.1版本,但是進行單元測試應該很早的版本就可以了,至少可以追溯到1.0
注意事項
當你google查詢AndroidStudio單元測試時,有大量的資料教程,但是都不完整,至少跟著教程一步步的是無法看到自己想看的效果的。AndroidStudio自帶的單元測試功能是不需要修改gradle或者AndroidManifest.xml檔案的。直接編寫測試用例即可。
編寫測試用例步驟
以下以一個由AndroidStudio一步步建立的全新工程為例
在src目錄下會包含三個目錄:
- androidTest.java.[包名]
main.java.[包名]
test.java.[包名]
- mian目錄下為專案程式碼,androidTest目錄下為編寫Android測試用例使用,test目錄下未編寫Java測試用例使用。
gradle檔案
- 增加
testCompile 'junit:junit:4.12'
用於Java編寫執行Java測試用例。
編寫Java測試用例
import org.junit.Test;
import static org.junit.Assert.*;
/**
* To work on unit tests, switch the Test Artifact in the Build Variants view.
*/
public class ExampleUnitTest {
private static final String TAG = "ExampleUnitTest";
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
測試用例的執行才是最關鍵的點
- 開啟測試用例類,即上面的ExampleUnitTest
- 在AndroidStudio的介面做側邊欄下部,有兩個工具欄(Build Variants 和 Favorites)
- 點選 Build Variants,Test Artifact 選項框選擇Unit Tests(同理跑Android測試用例選擇Android Instrumentation Tests)
- 在AndroidStudio的介面做側邊欄上部有一個structure工具標籤,(如果找不到,可以通過 工具欄–View–Tool Windows–Structure 開啟此工具標籤),開啟此標籤就可以看到此測試用例類的所有方法
- 滑鼠選中要測的方法,右鍵–Run [方法名],即可進行Java用例測試。
編寫Android測試用例
我在androidTest.java.[包名]資料夾中添加了一個類TestAndroidClass,該類派生自InstrumentationTestCase,並寫了一個方法,完整程式碼如下:
import android.test.InstrumentationTestCase;
public class TestAndroidClass extends InstrumentationTestCase {
private static final String TAG = "TestAndroidClass";
public void test() throws Exception{
assertEquals(2, 2);
}
}
- 測試用例執行方法同Java測試用例,但是 Build Variants 的 Test Artifact 選項框一定要更改為 Android Instrumentation Tests。
- 注意事項,在android studio中,所有的測試程式碼必須以test-作為字首,不然android studio無法識別它為測試程式碼。(以test為字首的方法是高亮的,非test的字首則不是,通過這一點也可以證明)
最後的話:
Build Variants的選擇很重要,如果選擇Unit Tests,Android的測試用例就會不被識別,反之Java的測試用例不被識別,所以在跑測試用例時一定選對標籤,我就是在這裡耗費了大量時間,偶然在stackoverflow上看到有人提了一句,感謝。