本文介紹測試的概念,並說明如何使用不同類型的測試來驗證程序代碼。 各種工具都可用於測試 .NET 應用程式,例如 .NET CLI 或 集成開發環境 (IDE)。
測試類型
自動化測試是確保應用程式程式代碼執行作者所想要之用途的絕佳方式。 本文涵蓋單元測試、整合測試和負載測試。
單元測試
單元測試 是練習個別軟體元件或方法的測試,也稱為「工作單位」。單元測試應該只測試開發人員控制件內的程式碼。 這些不會測試基礎設施問題。 基礎結構考慮包括與資料庫、檔案系統和網路資源互動。
整合測試
整合測試 與單元測試不同,因為它會練習兩個或多個軟體元件在一起運作的能力,也稱為「整合」。這些測試在測試中系統的更廣泛範圍內運作,而單元測試則著重於個別元件。 整合測試通常包括基礎結構考慮。
負載測試
負載測試 旨在判斷系統是否可以處理指定的負載。 例如,使用應用程式並行使用者的數目,以及應用程式以回應方式處理互動的能力。 如需 Web 應用程式負載測試的詳細資訊,請參閱 ASP.NET 核心負載/壓力測試。
測試注意事項
請記住,撰寫測試時要遵循最佳做法。 例如,測試驅動開發(TDD) 是在要測試的程式碼之前撰寫單元測試的時候。 TDD 就像在撰寫書籍之前為書建立大綱一樣。 單元測試可協助開發人員撰寫更簡單、可讀取且有效率的程序代碼。
測試工具
在 .NET 中執行測試時,涉及兩個元件:測試平臺和測試架構。
測試平臺
測試平台是執行測試的引擎,並作為與 IDE 溝通的渠道。 例如,Visual Studio 可以將探索要求傳送至測試平臺,以便在 [測試總管] 中顯示可用的測試。 測試平台會將找到的測試結果回傳給 IDE。 在測試執行期間會發生類似的溝通。
VSTest 在 .NET 中已使用多年,而且是生態系統中唯一的測試平臺。 2024 年初,發行了名為 Microsoft.Testing.Platform (MTP)的新測試平臺的第一個穩定版本。
測試架構
測試架構建置在測試平臺之上。 它會以測試作者身分定義可供您使用的屬性和 API 集合。 它通常是由測試配接器提供,其可作為測試架構與測試平臺之間的通訊層。 熱門的測試架構包括 MSTest、NUnit、TUnit 和 xUnit.net。
MSTest
MSTest 是所有 .NET 語言的Microsoft測試架構。 它是可延伸的,可與 .NET CLI、Visual Studio、Visual Studio Code 和 Rider 搭配使用。 它同時支援 VSTest 和 Microsoft.Testing.Platform。
如需詳細資訊,請參閱下列資源:
- 在 MSTest(MSTest 執行器)中支援 Microsoft.Testing.Platform
- 使用 C# 進行單元測試
- 使用 F# 進行單元測試
- 使用 Visual Basic 進行單元測試
NUnit
NUnit 是所有 .NET 語言的單元測試架構。 一開始,NUnit 已從 JUnit 移植,而目前的生產版本已改寫許多新功能,並支援各種 .NET 平臺。 這是 .NET Foundation的專案。 它同時支援 VSTest 和 Microsoft.Testing.Platform。
如需詳細資訊,請參閱下列資源:
- 在 NUnit(NUnit 測試工具)中的 Microsoft.Testing.Platform 支援
- 使用 C# 進行單元測試
- 使用 F# 進行單元測試
- 使用 Visual Basic 進行單元測試
TUnit
TUnit 完全建置在 Microsoft.Testing.Platform 之上,且不支援 VSTest。 如需詳細資訊,請參閱 TUnit 檔。
xUnit.net
xUnit.net 是適用於 .NET 的免費開放原始碼社群焦點單元測試工具。 NUnit v2 的原始發明者寫了 xUnit.net。 xUnit.net 是單元測試 .NET 應用程式的最新技術。 它也適用於 ReSharper、CodeRush 和 TestDriven.NET。 xUnit.net 是 .NET Foundation 專案,根據其行為規範運作。 它同時支援 VSTest 和 Microsoft.Testing.Platform
如需詳細資訊,請參閱下列資源:
- xUnit.net v3 中的 Microsoft.Testing.Platform 支援
- 使用 C# 進行單元測試
- 使用 F# 進行單元測試
- 使用 Visual Basic 進行單元測試
執行測試
.NET 命令列介面 (CLI)
您可以使用 .NET CLI搭配 dotnet test 命令,從方案中的所有測試專案執行單元測試。 .NET CLI 會公開 集成開發環境 (IDE) 透過使用者介面提供的大部分功能。 .NET CLI 是跨平臺,可用來作為持續整合和傳遞管線的一部分。 .NET CLI 會與腳本處理搭配使用,以自動化一般工作。
IDE
無論您是使用 Visual Studio、Visual Studio Code 或 Rider,都有圖形使用者介面來測試功能。 例如,Live Unit Testing,IDE 可用的功能比 CLI 更多。 如需詳細資訊,請參閱使用Visual Studio 包含和排除測試。
另請參閱
如需詳細資訊,請參閱下列文章:
- 使用 .NET 單元測試最佳做法
- ASP.NET Core 中的 整合測試
- 執行選擇性單元測試
- 使用程式代碼涵蓋範圍進行單元測試