JUnit 入門
建立
要使用 JUnit 開始對 Android 專案進行單元測試,你需要將 JUnit 依賴項新增到專案中,並且需要建立一個測試源集,該源集將包含單元測試的原始碼。使用 Android Studio 建立的專案通常已包含 JUnit 依賴項和測試源集
將以下行新增到依賴項 Closure
中的模組 build.gradle
檔案中:
testCompile 'junit:junit:4.12'
JUnit 測試類位於名為 test
的特殊源集中。如果此源集不存在,則需要自己建立新資料夾。預設 Android Studio(基於 Gradle)專案的資料夾結構如下所示:
<project-root-folder>
/app (module root folder)
/build
/libs
/src
/main (source code)
/test (unit test source code)
/androidTest (instrumentation test source code)
build.gradle (module gradle file)
/build
/gradle
build.gradle (project gradle file)
gradle.properties
gradlew
gradlew.bat
local.properties
settings.gradle (gradle settings)
如果你的專案沒有/app/src/test
資料夾,則需要自己建立。在 test
資料夾中,你還需要一個 java
資料夾(如果它不存在則建立它)。test
源集中的 java 資料夾應包含與 main
源集相同的包結構。
如果設定正確,你的專案結構(在 Android Studio 中的 Android 檢視中)應如下所示:
注意:你不一定需要擁有 androidTest
源集,此源集通常位於 Android Studio 建立的專案中,幷包含在此處以供參考。
寫一個測試
-
在
test
原始碼集中建立一個新類。
右鍵單擊專案檢視中的測試源集,選擇New
>Java class
。
最常用的命名模式是使用新增了Test
來測試的類的名稱。所以StringUtilities
變成了StringUtilitiesTest
。 -
新增
@RunWith
註釋
需要@RunWith
註釋才能使 JUnit 執行我們將在測試類中定義的測試。預設的 JUnit 執行器(對於 JUnit 4)是BlockJUnit4ClassRunner
,但是使用別名JUnit4
而不是直接使用它執行,這是預設 JUnit 執行器的簡寫。@RunWith(JUnit4.class) public class StringUtilitiesTest { }
-
建立測試
單元測試基本上只是一種方法,在大多數情況下,如果執行則不應該失敗。換句話說,它不應該丟擲異常。在測試方法中,你幾乎總能找到斷言,檢查是否滿足特定條件。如果斷言失敗,則丟擲異常,導致方法/測試失敗。測試方法始終使用@Test
註釋進行註釋。如果沒有此註釋,JUnit 將不會自動執行測試。@RunWith(JUnit4.class) public class StringUtilitiesTest { @Test public void addition_isCorrect() throws Exception { assertEquals("Hello JUnit", "Hello" + " " + "JUnit"); } }
注意:與標準 Java 方法命名約定不同,單元測試方法名稱通常包含下劃線。
執行測試
-
方法
要執行單個測試方法,你可以右鍵單擊該方法並單擊Run '
addition_isCorrect()'
或使用鍵盤快捷鍵ctrl+shift+f10
。如果一切設定正確 JUnit 開始執行該方法,你應該在 Android Studio 中看到以下介面:
-
類
你還可以執行單個類中定義的所有測試,方法是在專案檢視中右鍵單擊類並單擊Run 'StringUtilitiesTest '
,或者如果在專案檢視中選擇了類,則使用鍵盤快捷鍵ctrl+shift+f10
。 -
包(所有內容)
如果你不想執行專案或包中定義的所有測試,只需右鍵單擊包並單擊Run ...
,就像執行單個類中定義的所有測試一樣。