內容

Dart 測試

軟體測試是應用程式開發的重要一環,有助於在發佈應用程式之前驗證其是否正常運作。本 Dart 測試指南概述了幾種測試類型,並指引您瞭解如何測試您的 Flutter網路伺服器端應用程式和指令碼

您可以使用 dart test 命令(或對於 Flutter 應用程式,使用 flutter test)在命令列上執行測試。

測試種類

#

Dart 測試文件重點介紹三種測試類型,在您可能熟悉的許多測試類型中:單元測試、元件測試和端對端測試(一種整合測試形式)。測試術語各不相同,但這些是您在使用 Dart 技術時可能會遇到的術語和概念。

  • 單元測試重點在驗證最小的可測試軟體,例如函式、方法或類別。您的測試套件應比其他類型的測試擁有更多單元測試。

  • 元件測試(在 Flutter 中稱為小工具測試)驗證元件(通常由多個類別組成)的行為是否符合預期。元件測試通常需要使用模擬物件,這些物件可以模擬使用者動作、事件、執行佈局和實例化子元件。

  • 整合端對端測試驗證整個應用程式或應用程式的大部分行為。整合測試通常在模擬或真實裝置或瀏覽器(用於網路)上執行,並包含兩個部分:應用程式本身和測試應用程式,測試應用程式會讓應用程式進行測試。整合測試通常會測量效能,因此測試應用程式通常在與被測試應用程式不同的裝置或作業系統上執行。

通用函式庫

#

雖然您的測試部分取決於程式碼所針對的平台(例如 Flutter、網路或伺服器端),但下列套件在所有 Dart 平台上都很有用

  • package:test
    提供在 Dart 中編寫測試的標準方法。您可以使用 test 套件來

    • 編寫單個測試或測試群組。
    • 使用 @TestOn 註釋將測試限制為在特定環境中執行。
    • 如同編寫同步測試一樣編寫非同步測試。
    • 使用 @Tag 註釋標記測試。例如,定義一個標記來為某些測試建立自訂配置,或將某些測試識別為需要更多時間才能完成。
    • 建立 dart_test.yaml 檔案,以跨多個檔案或整個套件設定標記的測試。
  • package:mockito
    提供一種建立模擬物件的方法,這些物件可以輕鬆配置以用於固定的情境中,並驗證被測試的系統以預期的方式與模擬物件互動。有關使用 package:test 和 package:mockito 的範例,請參閱 國際太空站 API 函式庫及其單元測試,位於 mockito 套件中。

Flutter 測試

#

使用下列資源來瞭解有關測試 Flutter 應用程式的更多資訊

其他工具和資源

#

您也可能會發現下列資源對於開發和除錯 Dart 應用程式很有用。

IDE

#

在除錯方面,您的第一道防線是您的 IDE。許多常用 IDE 都有 Dart 外掛程式。

Dart DevTools

#

Dart DevTools 是一套適用於 Dart 和 Flutter 的效能工具。如需詳細資訊,請參閱Dart DevTools 文件。

持續整合

#

考慮使用持續整合 (CI) 來建置您的專案,並在每次提交後執行其測試。適用於 GitHub 的兩個 CI 服務是 GitHub ActionsAppVeyor

瞭解有關 GitHub Actions 的更多資訊

  • 使用 GitHub Actions 測試 Dart 套件示範了使用 GitHub Actions 測試 Flutter 應用程式或 Dart 套件的簡單工作流程。
  • Dart 團隊提供的許多套件都使用 GitHub Actions。例如,請參閱 markdown 套件的存放庫中的test-package.yml。若要瞭解該存放庫如何從 Travis CI 遷移到 GitHub Actions,請參閱PR #353