IntelliJ IDEA測試驅動開發(fā)

2018-10-31 09:40 更新

無論您喜歡在編寫生產(chǎn)代碼之前編寫測試,還是想在以后創(chuàng)建測試,IntelliJ IDEA 可以輕松創(chuàng)建和運行單元測試。在本教程中,我們將展示如何使用 IntelliJ IDEA 來首先編寫測試(測試驅動開發(fā)或 TDD)。

測試驅動開發(fā)(Test-Driven Development)簡稱 TDD,是以測試作為軟件開發(fā)的核心,將測試貫穿于軟件開發(fā)工程的方法論,TDD 同時也是 XP(極限編程)的核心之一。

IntelliJ IDEA 測試驅動開發(fā)條件

如果要實現(xiàn) IntelliJ IDEA 測試驅動開發(fā)有以下的幾個先決條件:

  • 你已經(jīng)在 IntelliJ IDEA 中創(chuàng)建了一個 Java 項目。
  • 您也可以使用生產(chǎn)和測試代碼的文件夾,可以是您手動創(chuàng)建的或者是創(chuàng)建項目時創(chuàng)建的。
  • 您可以通過添加測試庫或在 Gradle 或 Maven 中添加依賴項,在類路徑上有 JUnit 4。
  • 源和測試根源是是正確配置的:源根將顯示為藍色文件夾,測試文件夾將具有綠色背景。
  • 您已在項目中創(chuàng)建了所需的包。

創(chuàng)建第一個測試

鑒于我們首先編寫我們的測試,而不必為我們測試可用的類,我們將通過項目面板創(chuàng)建我們的第一個測試。

  • 右鍵單擊要創(chuàng)建測試的包,然后選擇:新建| Java 類(New | Java Class)。
  • 輸入測試名稱 - 假設我們正在使用 JUnit 進行測試,這可能是 [Something] 測試,例如MoodAnalyserTest

IntelliJ IDEA

  • 將光標放在類的大括號中的某個位置,按 Alt+Insert。
  • 從菜單中選擇:測試方法| JUnit 4(Test Method | JUnit 4)。這將創(chuàng)建一個帶有默認模板的測試方法。填寫測試名稱,按回車鍵,光標將結束于方法體。
IntelliJ IDEA
IntelliJ IDEA

你可以改變默認的測試方法模板,例如,如果您希望將方法名稱的開始從test更改為should。

編寫測試體

為不存在的類和方法編寫測試代碼可能似乎是直覺的,IntelliJ IDEA 保持編譯器使用的簡單直觀。IntelliJ IDEA 可以為您創(chuàng)建類和方法,如果它們不存在。

  1. 編寫測試描述你想要實現(xiàn)的測試,按 Alt+Enter 在任何不存在的類上輸入并選擇“創(chuàng)建類'[ClassName]'“。這將作為您提供一個適用于編譯器的最小實現(xiàn)
    IntelliJ IDEA編寫測試體
  2. 繼續(xù)編寫測試主體,包括您不需要的方法的名稱,您可以再次使用 Alt+Enter 并選擇“創(chuàng)建方法'[methodName]'“來使 IntelliJ IDEA 創(chuàng)建一個裸機框架方法。
    IntelliJ IDEA編寫測試體

    與往常一樣,您可以使用 IntelliJ IDEA 的重構工具創(chuàng)建變量來存儲結果,如果正確的庫位于類路徑上,IntelliJ IDEA 將為您導入最合適的類。

運行測試

當遵循 TDD 方法時,通常你會經(jīng)歷一個 Red-Green-Refactor 循環(huán)。你會運行一個測試,看到它失敗(轉到紅色),實現(xiàn)最簡單的代碼以使測試通過(轉到綠色),然后重構代碼,使您的測試保持綠色,并且代碼足夠干凈。

這個循環(huán)的第一步是運行測試并且看到它失敗。

鑒于我們已經(jīng)使用 IntelliJ IDEA 的功能來創(chuàng)建我們正在測試的方法的最簡單的空實現(xiàn),我們不期望我們的測試通過。

  • 從測試內部,按下 Ctrl+Shift+F10 以運行此單個測試。

    結果將顯示在“運行”對話框中。該測試名稱旁邊會有一個圖標(紅色表示異常),或黃色表示失敗的斷言。對于任一類型的失敗,還會顯示一條消息,說明出了什么問題。

    IntelliJ IDEA運行測試

實現(xiàn)代碼

下一步是使測試通過,這意味著實現(xiàn)最簡單的工作。

  1. 您可以使用通常的方法導航到正在測試的代碼 - 點擊方法名稱,在光標位于方法名稱上時按下 Ctrl+Alt+B,或者按下 Ctrl+Shift+T 以在測試和生產(chǎn)代碼之間切換。
  2. 對于方法進行更改以使測試通過。通常使用 TDD,最簡單的工作可能是硬編碼您的預期值。我們稍后會看到,如何迭代這個過程將導致更逼真的生產(chǎn)代碼。
  3. 重新運行測試,使用 Shift+F10 重新運行上一個測試。
  4. 查看測試通行證 - 測試方法旁邊的圖標應該變?yōu)榫G色。如果沒有,則在測試通過之前進行所需的更改。
    IntelliJ IDEA實現(xiàn)代碼

迭代

開發(fā)代碼是一個迭代過程。當采用 TDD 風格的方法時,這更為真實。為了推出更復雜的行為,我們?yōu)槠渌闆r添加測試。

  1. 在測試類中,再次使用 Alt+Insert 來創(chuàng)建一個新的測試方法。
  2. 選擇第二個測試用例,指定您正在測試的方法的更多要求。請記住,您可以使用 IntelliJ IDEA 的功能來創(chuàng)建類和方法來保持編譯器的快樂。
  3. 運行第二個測試用例,顯示出正確的原因失敗。
  4. 更改正在測試的方法中的代碼以使此測試通過。
  5. 通過在測試類內部按 Ctrl+Shift+F10 重新運行這兩個測試,而不是在單個方法中,并且看到這兩個測試都通過了。如果任一測試失敗,請對代碼進行所需的更改以確保測試通過。
    IntelliJ IDEA迭代

總結

以第一個測試樣式編寫第一個測試需要少量設置:創(chuàng)建測試類,創(chuàng)建測試方法,然后創(chuàng)建最終將成為生產(chǎn)代碼的代碼的空實現(xiàn)。IntelliJ IDEA 自動執(zhí)行了很多初始設置。

在您迭代過程中,創(chuàng)建測試,然后進行所需的更改以使這些測試通過,您將為您所需的功能構建一套全面的測試套件,以及滿足這些要求的最簡單的解決方案。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號