內容

軟體測試是應用程式開發中重要的一環,有助於在您發布應用程式之前驗證應用程式是否運作正常。本 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