使用 ScalaTest 在 IntelliJ 中測試 Scala

語言

Scala 有多個函式庫和測試方法,但在本教學課程中,我們將示範 ScalaTest 架構中一個熱門選項,稱為 FunSuite

這假設您知道 如何在 IntelliJ 中建置專案

設定

  1. 在 IntelliJ 中建立 sbt 專案。
  2. 加入 ScalaTest 相依性
    1. 將 ScalaTest 相依性加入您的 build.sbt 檔案
       libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.11" % Test
      
    2. 如果您收到「build.sbt 已變更」的通知,請選擇自動匯入
    3. 這兩個動作會讓 sbt 下載 ScalaTest 函式庫。
    4. 等待 sbt 同步完成;否則,AnyFunSuitetest() 將無法辨識。
  3. 在左側的專案窗格中,展開 src => main
  4. scala 上按一下滑鼠右鍵,然後選擇新增 => Scala 類別
  5. 將其命名為 CubeCalculator,將種類變更為 物件,然後按 Enter 或在 物件 上按兩下。
  6. 將程式碼替換為下列內容
     object CubeCalculator:
       def cube(x: Int) =
         x * x * x
    

建立測試

  1. 在左側的專案窗格中,展開 src => test
  2. scala 上按一下滑鼠右鍵,然後選擇新增 => Scala 類別
  3. 將類別命名為 CubeCalculatorTest,然後按 Enter 或在 類別 上按兩下。
  4. 將程式碼替換為下列內容
     import org.scalatest.funsuite.AnyFunSuite
        
     class CubeCalculatorTest extends AnyFunSuite:
       test("CubeCalculator.cube") {
         assert(CubeCalculator.cube(3) === 27)
       }
    
  5. 在原始碼中,在 CubeCalculatorTest 上按一下滑鼠右鍵,然後選擇執行「CubeCalculatorTest」

了解程式碼

讓我們逐行探討

  • class CubeCalculatorTest 表示我們正在測試物件 CubeCalculator
  • extends AnyFunSuite 讓我們可以使用 ScalaTest 的 AnyFunSuite 類別的功能,例如 test 函式
  • test 是 FunSuite 函式庫中的一個函式,它會收集函式主體中斷言的結果。
  • "CubeCalculator.cube" 是測試的名稱。您可以隨意命名,但其中一個慣例是「類別名稱.方法名稱」。
  • assert 會接收一個布林條件,並判斷測試是否通過或失敗。
  • CubeCalculator.cube(3) === 27 檢查 cube 函式的輸出是否確實為 27。=== 是 ScalaTest 的一部分,可提供清楚的錯誤訊息。

新增另一個測試案例

  1. 在第一個 assert 陳述式後面新增另一個 assert 陳述式,用來檢查 0 的立方。
  2. 右鍵按一下 CubeCalculatorTest,並選取「執行 CubeCalculatorTest」,再次重新執行測試。

結論

您已看到一種測試 Scala 程式碼的方法。您可以在 官方網站 上深入了解 ScalaTest 的 FunSuite。

此頁面的貢獻者