dotnet-testing-advanced
.NET 進階測試技能總覽
本檔案是「進階測試導航中心」,幫助找到正確的進階子技能。進階測試涉及容器管理、WebApplicationFactory 設定等複雜細節,子技能包含完整的設定指引和常見問題排解,載入正確的子技能能確保使用者獲得完整指引。
根據使用者需求匹配對應的進階子技能,使用 Skill tool 載入,讓子技能提供專業的整合測試指引。
快速技能對照表
使用者提到的關鍵字 → 應載入的進階子技能
整合測試技能
| 使用者說... | 載入指令 | 用途說明 |
|---|---|---|
| API 測試、Controller 測試、端點測試 | /skill dotnet-testing-advanced-aspnet-integration-testing |
基礎 API 整合測試 |
| 完整 CRUD、WebAPI 測試、業務流程測試 | /skill dotnet-testing-advanced-webapi-integration-testing |
完整 API 流程測試 |
| WebApplicationFactory、TestServer | /skill dotnet-testing-advanced-aspnet-integration-testing |
WebApplicationFactory 使用 |
容器化測試技能
| 使用者說... | 載入指令 | 用途說明 |
|---|---|---|
| SQL Server 容器、PostgreSQL、MySQL | /skill dotnet-testing-advanced-testcontainers-database |
關聯式資料庫容器測試 |
| MongoDB、Redis、Elasticsearch | /skill dotnet-testing-advanced-testcontainers-nosql |
NoSQL 資料庫容器測試 |
| 真實資料庫、EF Core 測試、Dapper 測試 | /skill dotnet-testing-advanced-testcontainers-database |
真實資料庫行為測試 |
| Testcontainers、容器測試、Docker 測試 | /skill dotnet-testing-advanced-testcontainers-database |
Testcontainers 基礎 |
微服務測試技能
| 使用者說... | 載入指令 | 用途說明 |
|---|---|---|
| .NET Aspire、微服務測試、分散式測試 | /skill dotnet-testing-advanced-aspire-testing |
Aspire 微服務測試 |
| DistributedApplication、服務間通訊 | /skill dotnet-testing-advanced-aspire-testing |
Aspire 應用測試 |
框架升級技能
| 使用者說... | 載入指令 | 用途說明 |
|---|---|---|
| xUnit 升級、xUnit 3.x、版本升級 | /skill dotnet-testing-advanced-xunit-upgrade-guide |
xUnit 2.x → 3.x 升級 |
| TUnit、新測試框架、TUnit 基礎 | /skill dotnet-testing-advanced-tunit-fundamentals |
TUnit 基礎與遷移 |
| TUnit 進階、TUnit DI、平行執行 | /skill dotnet-testing-advanced-tunit-advanced |
TUnit 進階功能 |
使用流程範例
使用者:請幫我建立 ProductsController 的 API 整合測試
AI:我注意到您需要進行 API 整合測試。根據快速對照表,
我應該載入 dotnet-testing-advanced-aspnet-integration-testing skill。
[使用 Skill tool 載入子技能]
AI:現在按照 ASP.NET Core Integration Testing skill 的指引為您建立測試...
完整技能清單
如需查看完整的 8 個進階技能清單、詳細決策樹、學習路徑建議,請繼續閱讀本檔案後續內容。
人類開發者參考:如需快速查找,請查看 SKILLS_QUICK_INDEX.md
快速決策樹
根據測試情境(API 測試、真實資料庫、微服務、框架遷移)快速找到對應的進階子技能。涵蓋 4 大情境與多個選項分支。
詳細內容請參閱 references/decision-tree.md
技能分類地圖
8 個進階技能分為三大類:整合測試(4 個)、微服務測試(1 個)、框架遷移(3 個),包含各技能的核心價值、適合情境、學習難度與前置技能。
常見任務映射表
7 個常見任務的完整映射,包含情境描述、推薦技能、實施步驟、提示詞範例與預期程式碼結構。
詳細內容請參閱 references/task-mapping-table.md
整合測試層級對應
根據專案複雜度,選擇適合的測試策略:
Level 1:簡單的 WebApi 專案
專案特徵:
- 簡單的 CRUD API
- 無外部依賴或使用記憶體實作
- 業務邏輯簡單
推薦技能:
dotnet-testing-advanced-aspnet-integration-testing
測試重點:
- 路由驗證
- 模型綁定
- HTTP 回應
- 基本業務邏輯
範例專案:
- TodoList API
- 簡單的產品目錄
Level 2:相依 Service 的 WebApi 專案
專案特徵:
- 有業務邏輯層(Services)
- 依賴外部服務(可以 Mock)
- 中等複雜度
推薦技能組合:
dotnet-testing-advanced-aspnet-integration-testing(基礎)dotnet-testing-nsubstitute-mocking(模擬依賴)
測試策略:
- 使用 NSubstitute 建立 Service stub
- 測試 Controller 與 Service 的互動
- 驗證錯誤處理
範例專案:
- 電商 API(有庫存、訂單服務)
- CMS 系統
Level 3:完整的 WebApi 專案
專案特徵:
- 複雜的業務邏輯
- 需要真實資料庫
- 可能有外部 API 整合
- 完整的錯誤處理
推薦技能組合:
dotnet-testing-advanced-webapi-integration-testing(完整流程)dotnet-testing-advanced-testcontainers-database(真實資料庫)dotnet-testing-advanced-testcontainers-nosql(如有使用 NoSQL)
測試策略:
- 使用 Testcontainers 建立真實資料庫
- 完整的端到端測試
- 測試資料準備與清理
- 驗證所有錯誤情境
範例專案:
- 大型電商平台
- 企業級管理系統
- SaaS 應用
學習路徑建議
包含整合測試入門(1 週)、微服務測試專精(3-5 天)、框架遷移路徑等完整學習計畫與每日學習重點。
詳細內容請參閱 references/learning-paths.md
技能組合建議
根據不同的專案需求,推薦以下技能組合:
組合 1:完整 API 測試專案
適合:建立正式專案的完整測試套件
技能組合:
dotnet-testing-advanced-aspnet-integration-testing(基礎)dotnet-testing-advanced-testcontainers-database(真實資料庫)dotnet-testing-advanced-webapi-integration-testing(完整流程)
學習順序:
- 先學 aspnet-integration-testing 理解基礎
- 再學 testcontainers-database 掌握資料庫測試
- 最後學 webapi-integration-testing 整合應用
預期成果:
- 能為 Web API 專案建立完整測試
- 使用真實資料庫驗證行為
- 測試所有 CRUD 端點與錯誤處理
組合 2:微服務測試方案
適合:微服務架構、分散式系統
技能組合:
dotnet-testing-advanced-aspire-testing(核心)dotnet-testing-advanced-testcontainers-database(資料庫)dotnet-testing-advanced-testcontainers-nosql(NoSQL)
學習順序:
- 先學 testcontainers(資料庫測試基礎)
- 再學 aspire-testing(微服務測試)
預期成果:
- 測試 .NET Aspire 專案
- 驗證服務間通訊
- 使用容器化環境測試
組合 3:框架現代化
適合:測試框架升級或遷移
選項 A:xUnit 升級
技能:
dotnet-testing-advanced-xunit-upgrade-guide
適合:
- 現有專案使用 xUnit 2.x
- 想升級到最新版本
選項 B:TUnit 遷移
技能組合:
dotnet-testing-advanced-tunit-fundamentals(基礎)dotnet-testing-advanced-tunit-advanced(進階)
適合:
- 新專案選擇測試框架
- 考慮從 xUnit 遷移
學習順序:
- 先學 fundamentals 了解基礎
- 再學 advanced 掌握進階功能
前置技能要求
學習進階技能前,建議先掌握以下基礎技能(來自 dotnet-testing 基礎技能集):
必備技能
1. dotnet-testing-unit-test-fundamentals
為什麼必須:
- 整合測試也遵循 3A Pattern
- FIRST 原則同樣適用
- 需要理解測試基礎概念
2. dotnet-testing-xunit-project-setup
為什麼必須:
- 需要建立測試專案
- 理解專案結構
- 了解套件管理
3. dotnet-testing-awesome-assertions-guide
為什麼必須:
- 整合測試需要驗證 HTTP 回應
- FluentAssertions.Web 提供強大的 API 斷言
- 提升測試可讀性
推薦技能
1. dotnet-testing-nsubstitute-mocking
為什麼推薦:
- 整合測試中可能需要 Mock 外部服務
- WebApplicationFactory 需要替換服務
2. dotnet-testing-autofixture-basics
為什麼推薦:
- 快速產生測試資料
- 減少整合測試的樣板程式碼
引導對話範例
4 個完整的對話範例,展示 AI 如何引導選擇正確技能:API 測試、微服務測試、框架升級、TUnit 評估。
與基礎技能的關係
進階技能建立在基礎技能之上:
基礎測試能力 → dotnet-testing(基礎技能集)
- 單元測試基礎
- 測試資料生成
- 斷言與模擬
- 特殊場景處理
↓ 進階應用
進階整合測試 → dotnet-testing-advanced(本技能集)
- Web API 整合測試
- 容器化測試
- 微服務測試
- 框架升級
學習建議:
先完成 dotnet-testing 基礎技能集的核心技能,再進入本進階技能集。
輸出格式
- 根據使用者需求推薦具體的進階子技能名稱與載入指令
- 提供簡短的推薦理由說明為何選擇該技能
- 若涉及多個技能組合,列出建議的學習順序
相關資源
原始資料來源
-
iThome 鐵人賽系列文章:老派軟體工程師的測試修練 - 30 天挑戰 2025 iThome 鐵人賽 Software Development 組冠軍
-
完整範例程式碼:30Days_in_Testing_Samples 包含所有範例專案的可執行程式碼
技術需求
整合測試技能:
- .NET 8+
- Docker Desktop
- WSL2(Windows 環境)
Aspire 測試技能:
- .NET 8+
- .NET Aspire Workload
- Docker Desktop
下一步
選擇符合您需求的進階技能開始學習,或告訴我您的具體情況,我會推薦最適合的學習路徑!
快速開始:
- 想測試 API → 從
dotnet-testing-advanced-aspnet-integration-testing開始 - 需要真實資料庫 → 從
dotnet-testing-advanced-testcontainers-database開始 - 微服務專案 → 使用
dotnet-testing-advanced-aspire-testing - 框架升級 → 使用對應的升級指南
- 不確定 → 告訴我您的專案情況,我會幫您分析