# Kevintsengtw Dotnet Testing Agent Skills Dotnet Testing Advanced

> .NET 進階測試技能總覽

- Skill: `tomevault-io/kevintsengtw-dotnet-testing-agent-skills-dotnet-testing-adva` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/kevintsengtw-dotnet-testing-agent-skills-dotnet-testing-adva`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/kevintsengtw-dotnet-testing-agent-skills-dotnet-testing-adva/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/kevintsengtw-dotnet-testing-agent-skills-dotnet-testing-adva

---


# .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 個進階技能清單、詳細決策樹、學習路徑建議，請繼續閱讀本檔案後續內容。

---

## 快速決策樹

根據測試情境（API 測試、真實資料庫、微服務、框架遷移）快速找到對應的進階子技能。涵蓋 4 大情境與多個選項分支。

> 詳細內容請參閱 [references/decision-tree.md](references/decision-tree.md)

---

## 技能分類地圖

8 個進階技能分為三大類：整合測試（4 個）、微服務測試（1 個）、框架遷移（3 個），包含各技能的核心價值、適合情境、學習難度與前置技能。

> 詳細內容請參閱 [references/skill-classification-map.md](references/skill-classification-map.md)

---

## 常見任務映射表

7 個常見任務的完整映射，包含情境描述、推薦技能、實施步驟、提示詞範例與預期程式碼結構。

> 詳細內容請參閱 [references/task-mapping-table.md](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）
- 中等複雜度

**推薦技能組合**：
1. `dotnet-testing-advanced-aspnet-integration-testing`（基礎）
2. `dotnet-testing-nsubstitute-mocking`（模擬依賴）

**測試策略**：
- 使用 NSubstitute 建立 Service stub
- 測試 Controller 與 Service 的互動
- 驗證錯誤處理

**範例專案**：
- 電商 API（有庫存、訂單服務）
- CMS 系統

---

### Level 3：完整的 WebApi 專案

**專案特徵**：
- 複雜的業務邏輯
- 需要真實資料庫
- 可能有外部 API 整合
- 完整的錯誤處理

**推薦技能組合**：
1. `dotnet-testing-advanced-webapi-integration-testing`（完整流程）
2. `dotnet-testing-advanced-testcontainers-database`（真實資料庫）
3. `dotnet-testing-advanced-testcontainers-nosql`（如有使用 NoSQL）

**測試策略**：
- 使用 Testcontainers 建立真實資料庫
- 完整的端到端測試
- 測試資料準備與清理
- 驗證所有錯誤情境

**範例專案**：
- 大型電商平台
- 企業級管理系統
- SaaS 應用

---

## 學習路徑建議

包含整合測試入門（1 週）、微服務測試專精（3-5 天）、框架遷移路徑等完整學習計畫與每日學習重點。

> 詳細內容請參閱 [references/learning-paths.md](references/learning-paths.md)

---

## 技能組合建議

根據不同的專案需求，推薦以下技能組合：

### 組合 1：完整 API 測試專案

**適合**：建立正式專案的完整測試套件

**技能組合**：
1. `dotnet-testing-advanced-aspnet-integration-testing`（基礎）
2. `dotnet-testing-advanced-testcontainers-database`（真實資料庫）
3. `dotnet-testing-advanced-webapi-integration-testing`（完整流程）

**學習順序**：
1. 先學 aspnet-integration-testing 理解基礎
2. 再學 testcontainers-database 掌握資料庫測試
3. 最後學 webapi-integration-testing 整合應用

**預期成果**：
- 能為 Web API 專案建立完整測試
- 使用真實資料庫驗證行為
- 測試所有 CRUD 端點與錯誤處理

---

### 組合 2：微服務測試方案

**適合**：微服務架構、分散式系統

**技能組合**：
1. `dotnet-testing-advanced-aspire-testing`（核心）
2. `dotnet-testing-advanced-testcontainers-database`（資料庫）
3. `dotnet-testing-advanced-testcontainers-nosql`（NoSQL）

**學習順序**：
1. 先學 testcontainers（資料庫測試基礎）
2. 再學 aspire-testing（微服務測試）

**預期成果**：
- 測試 .NET Aspire 專案
- 驗證服務間通訊
- 使用容器化環境測試

---

### 組合 3：框架現代化

**適合**：測試框架升級或遷移

#### 選項 A：xUnit 升級
**技能**：
- `dotnet-testing-advanced-xunit-upgrade-guide`

**適合**：
- 現有專案使用 xUnit 2.x
- 想升級到最新版本

---

#### 選項 B：TUnit 遷移
**技能組合**：
1. `dotnet-testing-advanced-tunit-fundamentals`（基礎）
2. `dotnet-testing-advanced-tunit-advanced`（進階）

**適合**：
- 新專案選擇測試框架
- 考慮從 xUnit 遷移

**學習順序**：
1. 先學 fundamentals 了解基礎
2. 再學 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 評估。

> 詳細內容請參閱 [references/conversation-examples.md](references/conversation-examples.md)

---

## 與基礎技能的關係

進階技能建立在基礎技能之上：

**基礎測試能力** → `dotnet-testing`（基礎技能集）
- 單元測試基礎
- 測試資料生成
- 斷言與模擬
- 特殊場景處理

**↓ 進階應用**

**進階整合測試** → `dotnet-testing-advanced`（本技能集）
- Web API 整合測試
- 容器化測試
- 微服務測試
- 框架升級

**學習建議**：
先完成 `dotnet-testing` 基礎技能集的核心技能，再進入本進階技能集。

---

## 輸出格式

- 根據使用者需求推薦具體的進階子技能名稱與載入指令
- 提供簡短的推薦理由說明為何選擇該技能
- 若涉及多個技能組合，列出建議的學習順序

## 相關資源

### 原始資料來源

- **iThome 鐵人賽系列文章**：[老派軟體工程師的測試修練 - 30 天挑戰](https://ithelp.ithome.com.tw/users/20066083/ironman/8276)
  2025 iThome 鐵人賽 Software Development 組冠軍

- **完整範例程式碼**：[30Days_in_Testing_Samples](https://github.com/kevintsengtw/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`
- 框架升級 → 使用對應的升級指南
- 不確定 → 告訴我您的專案情況，我會幫您分析

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/kevintsengtw) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

