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 檢視中)應如下所示:

StackOverflow 文件

注意:你不一定需要擁有 androidTest 源集,此源集通常位於 Android Studio 建立的專案中,幷包含在此處以供參考。

寫一個測試

  1. test 原始碼集中建立一個新類。
    右鍵單擊專案檢視中的測試源集,選擇 New> Java class
    最常用的命名模式是使用新增了 Test 來測試的類的名稱。所以 StringUtilities 變成了 StringUtilitiesTest

  2. 新增 @RunWith 註釋
    需要 @RunWith 註釋才能使 JUnit 執行我們將在測試類中定義的測試。預設的 JUnit 執行器(對於 JUnit 4)是 BlockJUnit4ClassRunner,但是使用別名 JUnit4 而不是直接使用它執行,這是預設 JUnit 執行器的簡寫。

     @RunWith(JUnit4.class)
     public class StringUtilitiesTest {
    
     }
    
  3. 建立測試
    單元測試基本上只是一種方法,在大多數情況下,如果執行則不應該失敗。換句話說,它不應該丟擲異常。在測試方法中,你幾乎總能找到斷言,檢查是否滿足特定條件。如果斷言失敗,則丟擲異常,導致方法/測試失敗。測試方法始終使用 @Test 註釋進行註釋。如果沒有此註釋,JUnit 將不會自動執行測試。

     @RunWith(JUnit4.class)
     public class StringUtilitiesTest {
    
         @Test
         public void addition_isCorrect() throws Exception {
             assertEquals("Hello JUnit", "Hello" + " " + "JUnit");
         }
     }
    

    注意:與標準 Java 方法命名約定不同,單元測試方法名稱通常包含下劃線。

執行測試

  1. 方法
    要執行單個測試方法,你可以右鍵單擊該方法並單擊 Run 'addition_isCorrect()'或使用鍵盤快捷鍵 ctrl+shift+f10StackOverflow 文件

    如果一切設定正確 JUnit 開始執行該方法,你應該在 Android Studio 中看到以下介面:

    StackOverflow 文件


  2. 你還可以執行單個類中定義的所有測試,方法是在專案檢視中右鍵單擊類並單擊 Run 'StringUtilitiesTest ',或者如果在專案檢視中選擇了類,則使用鍵盤快捷鍵 ctrl+shift+f10

  3. 包(所有內容)
    如果你不想執行專案或包中定義的所有測試,只需右鍵單擊包並單擊 Run ...,就像執行單個類中定義的所有測試一樣。