{"id":"2db97369-4727-4a8c-b695-47758682f3e5","shortId":"9adqDc","kind":"skill","title":"dotnet-testing","tagline":".NET 測試基礎技能總覽與引導中心。當使用者詢問「如何寫 .NET 測試」、「.NET 測試入門」、「需要哪些測試工具」、「測試最佳實踐」、「從零開始學測試」等一般性測試需求時觸發。會根據具體需求推薦適合的子技能組合，涵蓋測試基礎、測試資料、斷言、模擬、特殊場景等 19 個基礎技能。\nMake sure to use this skill whenever the user asks about .NET testing in general, wants to know which testing tool to use, or needs guid","description":"# .NET 測試基礎技能總覽\n\n本檔案是「導航中心」，幫助找到正確的子技能。子技能包含詳細的程式碼範例、最佳實踐和常見陷阱，載入正確的子技能能確保使用者獲得最完整的指引。\n\n根據使用者需求匹配對應的子技能，使用 Skill tool 載入，讓子技能提供專業的測試指引。\n\n---\n\n## 快速技能對照表\n\n**使用者提到的關鍵字 → 應載入的子技能**\n\n### 最常用技能\n\n| 使用者說... | 載入指令 | 用途說明 |\n|------------|----------|----------|\n| **Validator**、驗證器、CreateUserValidator | `/skill dotnet-testing-fluentvalidation-testing` | FluentValidation 測試 |\n| **Mock**、模擬、IRepository、IService | `/skill dotnet-testing-nsubstitute-mocking` | 模擬外部依賴 |\n| **AutoFixture**、測試資料生成 | `/skill dotnet-testing-autofixture-basics` | 自動產生測試資料 |\n| **斷言**、Should()、BeEquivalentTo | `/skill dotnet-testing-awesome-assertions-guide` | 流暢斷言（必學） |\n| **DateTime**、時間測試、TimeProvider | `/skill dotnet-testing-datetime-testing-timeprovider` | 時間相關測試 |\n| **File**、檔案系統、IFileSystem | `/skill dotnet-testing-filesystem-testing-abstractions` | 檔案系統測試 |\n| **Bogus**、假資料、Faker | `/skill dotnet-testing-bogus-fake-data` | 擬真資料生成 |\n| **Builder Pattern**、WithXxx | `/skill dotnet-testing-test-data-builder-pattern` | Test Data Builder |\n| **深層比對**、DTO 比對、Excluding | `/skill dotnet-testing-complex-object-comparison` | 複雜物件比對 |\n\n### 基礎入門技能\n\n| 使用者說... | 載入指令 | 用途說明 |\n|------------|----------|----------|\n| **從零開始**、測試基礎、FIRST 原則 | `/skill dotnet-testing-unit-test-fundamentals` | 單元測試基礎 |\n| **測試命名**、如何命名測試 | `/skill dotnet-testing-test-naming-conventions` | 命名規範 |\n| **建立測試專案**、xUnit 設定 | `/skill dotnet-testing-xunit-project-setup` | 專案建置 |\n\n### 進階技能組合\n\n| 使用者說... | 載入指令 | 用途說明 |\n|------------|----------|----------|\n| AutoFixture 自訂規則 | `/skill dotnet-testing-autofixture-customization` | ISpecimenBuilder 客製化 |\n| AutoFixture + Bogus | `/skill dotnet-testing-autofixture-bogus-integration` | 自動化+擬真資料 |\n| AutoFixture + NSubstitute | `/skill dotnet-testing-autofixture-nsubstitute-integration` | 自動建立 Mock |\n| AutoData、Theory 測試 | `/skill dotnet-testing-autodata-xunit-integration` | 參數化測試 |\n| 測試輸出、ITestOutputHelper | `/skill dotnet-testing-test-output-logging` | 測試日誌 |\n| 覆蓋率、Coverlet | `/skill dotnet-testing-code-coverage-analysis` | 程式碼覆蓋率 |\n\n---\n\n## 使用流程範例\n\n```\n使用者：請幫我建立 CreateUserValidator 的測試\n\nAI：我注意到您需要測試 Validator。根據快速對照表，\n    我應該載入 dotnet-testing-fluentvalidation-testing skill。\n\n    [使用 Skill tool 載入子技能]\n\nAI：現在按照 FluentValidation Testing skill 的指引為您建立測試...\n```\n\n---\n\n## 完整技能清單\n\n如需查看完整的 19 個基礎技能清單、詳細決策樹、學習路徑建議，請繼續閱讀本檔案後續內容。\n\n---\n\n## 快速決策樹\n\n### 我應該從哪裡開始？\n\n#### 情境 1：完全新手，從未寫過測試\n\n**推薦學習路徑**：\n1. `dotnet-testing-unit-test-fundamentals` - 理解 FIRST 原則與 3A Pattern\n2. `dotnet-testing-test-naming-conventions` - 學習命名規範\n3. `dotnet-testing-xunit-project-setup` - 建立第一個測試專案\n\n**為什麼這樣學**：\n- FIRST 原則是所有測試的基礎，先建立正確的觀念\n- 命名規範讓測試易讀易維護\n- 實際動手建立專案，將理論轉化為實踐\n\n---\n\n#### 情境 2：會寫基礎測試，但測試資料準備很麻煩\n\n**推薦技能（擇一或組合）**：\n\n**選項 A - 自動化優先**\n→ `dotnet-testing-autofixture-basics`\n適合：需要大量測試資料、減少樣板程式碼\n\n**選項 B - 擬真資料優先**\n→ `dotnet-testing-bogus-fake-data`\n適合：需要真實感的測試資料（姓名、地址、Email 等）\n\n**選項 C - 語意清晰優先**\n→ `dotnet-testing-test-data-builder-pattern`\n適合：需要高可讀性、明確表達測試意圖\n\n**選項 D - 兩者兼具**\n→ `dotnet-testing-autofixture-basics` + `dotnet-testing-autofixture-bogus-integration`\n適合：同時需要自動化和擬真資料\n\n---\n\n#### 情境 3：有外部依賴（資料庫、API、第三方服務）需要模擬\n\n**推薦技能組合**：\n1. `dotnet-testing-nsubstitute-mocking` - NSubstitute Mock 框架基礎\n2. `dotnet-testing-autofixture-nsubstitute-integration` - （可選）整合 AutoFixture 與 NSubstitute\n\n**何時需要第二個技能**：\n- 如果您已經在使用 AutoFixture 產生測試資料\n- 想要自動建立 Mock 物件，減少手動設定\n\n---\n\n#### 情境 4：測試中有特殊場景\n\n**時間相關測試**\n→ `dotnet-testing-datetime-testing-timeprovider`\n處理：DateTime.Now、時區轉換、時間計算\n\n**檔案系統測試**\n→ `dotnet-testing-filesystem-testing-abstractions`\n處理：檔案讀寫、目錄操作、路徑處理\n\n**私有/內部成員測試**\n→ `dotnet-testing-private-internal-testing`\n處理：需要測試 private、internal 成員（但應謹慎使用）\n\n---\n\n#### 情境 5：需要更好的斷言方式\n\n**基礎需求 - 流暢斷言**\n→ `dotnet-testing-awesome-assertions-guide`\n所有專案都應該使用，提升測試可讀性\n\n**進階需求 - 複雜物件比較**\n→ `dotnet-testing-complex-object-comparison`\n處理：深層物件比較、DTO 驗證、Entity 比對\n\n**驗證規則測試**\n→ `dotnet-testing-fluentvalidation-testing`\n處理：測試 FluentValidation 驗證器\n\n---\n\n#### 情境 6：想了解測試覆蓋率\n\n→ `dotnet-testing-code-coverage-analysis`\n學習：使用 Coverlet 分析程式碼覆蓋率、產生報告\n\n## 技能分類地圖\n\n將 19 個基礎技能分為 7 大類別（測試基礎、測試資料生成、測試替身、斷言驗證、特殊場景、測試度量、框架整合），每類包含技能對照表、學習路徑與程式碼範例。\n\n> 詳細內容請參閱 [references/skill-classification-map.md](references/skill-classification-map.md)\n\n## 常見任務映射表\n\n提供 7 個常見測試任務（從零建專案、服務依賴測試、時間邏輯測試等）的技能組合推薦、實施步驟與提示詞範例。\n\n> 詳細內容請參閱 [references/task-mapping-table.md](references/task-mapping-table.md)\n\n## 學習路徑建議\n\n規劃新手路徑（1-2 週）與進階路徑（2-3 週）的每日學習計畫，包含技能、學習重點與實作練習。\n\n> 詳細內容請參閱 [references/learning-paths.md](references/learning-paths.md)\n\n## 引導對話範例\n\n展示 AI 如何與您互動，幫助您選擇正確的技能，包含新手入門、處理依賴、特定問題、改善測試等 4 個常見對話場景。\n\n> 詳細內容請參閱 [references/conversation-examples.md](references/conversation-examples.md)\n\n## 與進階技能的關係\n\n完成基礎技能後，如果您需要進行整合測試、API 測試、容器化測試或微服務測試，請參考：\n\n**進階整合測試** → `dotnet-testing-advanced`\n- ASP.NET Core 整合測試\n- 容器化測試（Testcontainers）\n- 微服務測試（.NET Aspire）\n- 測試框架升級與遷移\n\n## 輸出格式\n\n- 根據使用者需求推薦具體的子技能名稱與載入指令\n- 提供簡短的推薦理由說明為何選擇該技能\n- 若涉及多個技能組合，列出建議的學習順序\n\n## 相關資源\n\n### 原始資料來源\n\n- **iThome 鐵人賽系列文章**：[老派軟體工程師的測試修練 - 30 天挑戰](https://ithelp.ithome.com.tw/users/20066083/ironman/8276)\n  2025 iThome 鐵人賽 Software Development 組冠軍\n\n- **完整範例程式碼**：[30Days_in_Testing_Samples](https://github.com/kevintsengtw/30Days_in_Testing_Samples)\n  包含所有範例專案的可執行程式碼\n\n### 學習文檔\n\n本技能集基於以下完整教材提煉而成：\n\n- **Agent Skills：從架構設計到實戰應用** (docs/Agent_Skills_Mastery.pdf)\n  完整涵蓋 Agent Skills 從理論到實踐\n\n- **Claude Code Skills: 讓 AI 變身專業工匠** (docs/Agent_Skills_Architecture.pdf)\n  深入解析 Agent Skills 的架構設計\n\n- **.NET Testing：寫得更好、跑得更快** (docs/NET_Testing_Write_Better_Run_Faster.pdf)\n  測試執行優化與除錯技巧\n\n## 下一步\n\n選擇符合您需求的技能開始學習，或告訴我您的具體情況，我會推薦最適合的學習路徑！\n\n**快速開始**：\n- 新手 → 從 `dotnet-testing-unit-test-fundamentals` 開始\n- 有經驗 → 告訴我您遇到的具體問題\n- 不確定 → 告訴我您的專案情況，我會幫您分析","tags":["dotnet","testing","agent","skills","kevintsengtw","agent-skills","ai-assisted-development","copilot-skills","csharp","dotnet-testing","github-copilot","integration-testing"],"capabilities":["skill","source-kevintsengtw","skill-dotnet-testing","topic-agent-skills","topic-ai-assisted-development","topic-copilot-skills","topic-csharp","topic-dotnet","topic-dotnet-testing","topic-github-copilot","topic-integration-testing","topic-testing","topic-unit-testing","topic-xunit"],"categories":["dotnet-testing-agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kevintsengtw/dotnet-testing-agent-skills/dotnet-testing","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kevintsengtw/dotnet-testing-agent-skills","source_repo":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (5,621 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T13:02:27.720Z","embedding":null,"createdAt":"2026-04-18T23:04:37.273Z","updatedAt":"2026-04-24T13:02:27.720Z","lastSeenAt":"2026-04-24T13:02:27.720Z","tsv":"'-2':573 '-3':577 '/kevintsengtw/30days_in_testing_samples)':648 '/skill':74,86,95,105,117,128,139,150,165,181,191,202,216,226,237,249,259,269 '/users/20066083/ironman/8276)':634 '1':313,317,421,572 '19':22,305,542 '2':329,353,430,576 '2025':635 '3':337,414 '30':630 '30days':642 '3a':327 '4':451,594 '5':490 '6':527 '7':544,560 'abstract':134,470 'advanc':610 'agent':652,657,668 'ai':282,297,587,664 'analysi':275,534 'api':417,602 'ask':33 'asp.net':611 'aspir':618 'assert':110,498 'autodata':246,253 'autofixtur':93,99,214,220,224,230,235,241,364,403,408,434,439,444 'awesom':109,497 'b':370 'basic':100,365,404 'beequivalentto':104 'bogus':136,143,225,231,375,409 'builder':147,156,160,392 'c':385 'claud':660 'code':273,532,661 'comparison':171,509 'complex':169,507 'convent':197,335 'core':612 'coverag':274,533 'coverlet':268,537 'createuservalid':73,280 'custom':221 'd':398 'data':145,155,159,377,391 'datetim':114,121,457 'datetime.now':461 'develop':639 'docs/agent_skills_architecture.pdf':666 'docs/agent_skills_mastery.pdf':655 'docs/net_testing_write_better_run_faster.pdf':675 'dotnet':2,76,88,97,107,119,130,141,152,167,183,193,204,218,228,239,251,261,271,288,319,331,339,362,373,388,401,406,423,432,455,466,478,495,505,518,530,608,685 'dotnet-test':1 'dotnet-testing-advanc':607 'dotnet-testing-autodata-xunit-integr':250 'dotnet-testing-autofixture-bas':96,361,400 'dotnet-testing-autofixture-bogus-integr':227,405 'dotnet-testing-autofixture-custom':217 'dotnet-testing-autofixture-nsubstitute-integr':238,431 'dotnet-testing-awesome-assertions-guid':106,494 'dotnet-testing-bogus-fake-data':140,372 'dotnet-testing-code-coverage-analysi':270,529 'dotnet-testing-complex-object-comparison':166,504 'dotnet-testing-datetime-testing-timeprovid':118,454 'dotnet-testing-filesystem-testing-abstract':129,465 'dotnet-testing-fluentvalidation-test':75,287,517 'dotnet-testing-nsubstitute-mock':87,422 'dotnet-testing-private-internal-test':477 'dotnet-testing-test-data-builder-pattern':151,387 'dotnet-testing-test-naming-convent':192,330 'dotnet-testing-test-output-log':260 'dotnet-testing-unit-test-fundament':182,318,684 'dotnet-testing-xunit-project-setup':203,338 'dto':162,512 'email':382 'entiti':514 'exclud':164 'fake':144,376 'faker':138 'file':125 'filesystem':132,468 'first':179,325,346 'fluentvalid':78,80,290,299,520,524 'fundament':187,323,689 'general':38 'github.com':647 'github.com/kevintsengtw/30days_in_testing_samples)':646 'guid':49,111,499 'ifilesystem':127 'integr':232,243,255,410,436 'intern':481,486 'irepositori':84 'iservic':85 'ispecimenbuild':222 'itestoutputhelp':258 'ithelp.ithome.com.tw':633 'ithelp.ithome.com.tw/users/20066083/ironman/8276)':632 'ithom':627,636 'know':41 'log':265 'make':24 'mock':82,91,245,426,428,447 'name':196,334 'need':48 'net':4,8,10,35,50,617,671 'nsubstitut':90,236,242,425,427,435,441 'object':170,508 'output':264 'pattern':148,157,328,393 'privat':480,485 'project':207,342 'references/conversation-examples.md':597,598 'references/learning-paths.md':583,584 'references/skill-classification-map.md':556,557 'references/task-mapping-table.md':568,569 'sampl':645 'setup':208,343 'skill':29,60,292,294,301,653,658,662,669 'skill-dotnet-testing' 'softwar':638 'source-kevintsengtw' 'sure':25 'test':3,36,43,77,79,89,98,108,120,122,131,133,142,153,154,158,168,184,186,194,195,205,219,229,240,252,262,263,272,289,291,300,320,322,332,333,340,363,374,389,390,402,407,424,433,456,458,467,469,479,482,496,506,519,521,531,609,644,672,686,688 'testcontain':615 'theori':247 'timeprovid':116,123,459 'tool':44,61,295 'topic-agent-skills' 'topic-ai-assisted-development' 'topic-copilot-skills' 'topic-csharp' 'topic-dotnet' 'topic-dotnet-testing' 'topic-github-copilot' 'topic-integration-testing' 'topic-testing' 'topic-unit-testing' 'topic-xunit' 'unit':185,321,687 'use':27,46 'user':32 'valid':71,284 'want':39 'whenev':30 'withxxx':149 'xunit':200,206,254,341 '下一步':677 '不確定':693 '但應謹慎使用':488 '但測試資料準備很麻煩':355 '何時需要第二個技能':442 '使用':59,293,536 '使用流程範例':277 '使用者':278 '使用者提到的關鍵字':65 '使用者說':68,174,211 '個基礎技能':23 '個基礎技能分為':543 '個基礎技能清單':306 '個常見對話場景':595 '個常見測試任務':561 '假資料':137 '先建立正確的觀念':348 '內部成員測試':476 '兩者兼具':399 '分析程式碼覆蓋率':538 '列出建議的學習順序':624 '包含所有範例專案的可執行程式碼':649 '包含技能':580 '包含新手入門':590 '原則':180 '原則是所有測試的基礎':347 '原則與':326 '原始資料來源':626 '參數化測試':256 '可選':437 '同時需要自動化和擬真資料':412 '告訴我您的專案情況':694 '告訴我您遇到的具體問題':692 '命名規範':198 '命名規範讓測試易讀易維護':349 '單元測試基礎':188 '地址':381 '基礎入門技能':173 '基礎需求':492 '大類別':545 '天挑戰':631 '如何命名測試':190 '如何寫':7 '如何與您互動':588 '如果您已經在使用':443 '如果您需要進行整合測試':601 '如需查看完整的':304 '姓名':380 '子技能包含詳細的程式碼範例':55 '學習':535 '學習命名規範':336 '學習文檔':650 '學習路徑建議':308,570 '學習路徑與程式碼範例':554 '學習重點與實作練習':581 '完全新手':314 '完成基礎技能後':600 '完整技能清單':303 '完整涵蓋':656 '完整範例程式碼':641 '客製化':223 '容器化測試':614 '容器化測試或微服務測試':604 '實施步驟與提示詞範例':566 '實際動手建立專案':350 '寫得更好':673 '將':541 '將理論轉化為實踐':351 '專案建置':209 '導航中心':53 '展示':586 '常見任務映射表':558 '幫助您選擇正確的技能':589 '幫助找到正確的子技能':54 '建立測試專案':199 '建立第一個測試專案':344 '引導對話範例':585 '從':683 '從未寫過測試':315 '從架構設計到實戰應用':654 '從理論到實踐':659 '從零建專案':562 '從零開始':177 '從零開始學測試':14 '微服務測試':616 '必學':113 '快速技能對照表':64 '快速決策樹':310 '快速開始':681 '情境':312,352,413,450,489,526 '想了解測試覆蓋率':528 '想要自動建立':446 '應載入的子技能':66 '成員':487 '我應該從哪裡開始':311 '我應該載入':286 '我會幫您分析':695 '我會推薦最適合的學習路徑':680 '我注意到您需要測試':283 '或告訴我您的具體情況':679 '所有專案都應該使用':500 '技能分類地圖':540 '推薦學習路徑':316 '推薦技能':356 '推薦技能組合':420 '提供':559 '提供簡短的推薦理由說明為何選擇該技能':622 '提升測試可讀性':501 '擇一或組合':357 '擬真資料':234 '擬真資料優先':371 '擬真資料生成':146 '改善測試等':593 '整合':438 '整合測試':613 '新手':682 '斷言':19,102 '斷言驗證':549 '明確表達測試意圖':396 '時區轉換':462 '時間測試':115 '時間相關測試':124,453 '時間計算':463 '時間邏輯測試等':564 '最佳實踐和常見陷阱':56 '最常用技能':67 '會寫基礎測試':354 '會根據具體需求推薦適合的子技能組合':16 '有外部依賴':415 '有經驗':691 '服務依賴測試':563 '本技能集基於以下完整教材提煉而成':651 '本檔案是':52 '根據使用者需求匹配對應的子技能':58 '根據使用者需求推薦具體的子技能名稱與載入指令':621 '根據快速對照表':285 '框架基礎':429 '框架整合':552 '模擬':20,83 '模擬外部依賴':92 '檔案系統':126 '檔案系統測試':135,464 '檔案讀寫':472 '每類包含技能對照表':553 '比對':163,515 '流暢斷言':112,493 '涵蓋測試基礎':17 '深入解析':667 '深層比對':161 '深層物件比較':511 '減少手動設定':449 '減少樣板程式碼':368 '測試':9,81,248,523,603 '測試中有特殊場景':452 '測試入門':11 '測試命名':189 '測試執行優化與除錯技巧':676 '測試基礎':178,546 '測試基礎技能總覽':51 '測試基礎技能總覽與引導中心':5 '測試度量':551 '測試日誌':266 '測試替身':548 '測試最佳實踐':13 '測試框架升級與遷移':619 '測試資料':18 '測試資料生成':94,547 '測試輸出':257 '為什麼這樣學':345 '物件':448 '特定問題':592 '特殊場景':550 '特殊場景等':21 '現在按照':298 '理解':324 '產生報告':539 '產生測試資料':445 '用途說明':70,176,213 '當使用者詢問':6 '的技能組合推薦':565 '的指引為您建立測試':302 '的架構設計':670 '的每日學習計畫':579 '的測試':281 '目錄操作':473 '相關資源':625 '私有':475 '程式碼覆蓋率':276 '第三方服務':418 '等':383 '等一般性測試需求時觸發':15 '組冠軍':640 '老派軟體工程師的測試修練':629 '自動化':233 '自動化優先':360 '自動建立':244 '自動產生測試資料':101 '自訂規則':215 '與':440 '與進階技能的關係':599 '與進階路徑':575 '若涉及多個技能組合':623 '處理':460,471,483,510,522 '處理依賴':591 '複雜物件比對':172 '複雜物件比較':503 '覆蓋率':267 '規劃新手路徑':571 '設定':201 '詳細內容請參閱':555,567,582,596 '詳細決策樹':307 '語意清晰優先':386 '請參考':605 '請幫我建立':279 '請繼續閱讀本檔案後續內容':309 '變身專業工匠':665 '讓':663 '讓子技能提供專業的測試指引':63 '資料庫':416 '跑得更快':674 '路徑處理':474 '載入':62 '載入子技能':296 '載入指令':69,175,212 '載入正確的子技能能確保使用者獲得最完整的指引':57 '輸出格式':620 '週':574,578 '進階技能組合':210 '進階整合測試':606 '進階需求':502 '適合':366,378,394,411 '選擇符合您需求的技能開始學習':678 '選項':358,369,384,397 '鐵人賽':637 '鐵人賽系列文章':628 '開始':690 '需要哪些測試工具':12 '需要大量測試資料':367 '需要更好的斷言方式':491 '需要模擬':419 '需要測試':484 '需要真實感的測試資料':379 '需要高可讀性':395 '驗證':513 '驗證器':72,525 '驗證規則測試':516","prices":[{"id":"5c5460a1-5bc5-4a38-aaef-ac6cfc6569e5","listingId":"2db97369-4727-4a8c-b695-47758682f3e5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kevintsengtw","category":"dotnet-testing-agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:04:37.273Z"}],"sources":[{"listingId":"2db97369-4727-4a8c-b695-47758682f3e5","source":"github","sourceId":"kevintsengtw/dotnet-testing-agent-skills/dotnet-testing","sourceUrl":"https://github.com/kevintsengtw/dotnet-testing-agent-skills/tree/main/skills/dotnet-testing","isPrimary":false,"firstSeenAt":"2026-04-18T23:04:37.273Z","lastSeenAt":"2026-04-24T13:02:27.720Z"}],"details":{"listingId":"2db97369-4727-4a8c-b695-47758682f3e5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kevintsengtw","slug":"dotnet-testing","github":{"repo":"kevintsengtw/dotnet-testing-agent-skills","stars":23,"topics":["agent-skills","ai-assisted-development","copilot-skills","csharp","dotnet","dotnet-testing","github-copilot","integration-testing","testing","unit-testing","xunit"],"license":"mit","html_url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","pushed_at":"2026-03-31T07:28:56Z","description":"AI Agent Skills for .NET Testing - Based on 30-Day Testing Challenge (iThome Ironman 2025 Winner)","skill_md_sha":"4214df572234ddff938b45bfce70928f812de249","skill_md_path":"skills/dotnet-testing/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills/tree/main/skills/dotnet-testing"},"layout":"multi","source":"github","category":"dotnet-testing-agent-skills","frontmatter":{"name":"dotnet-testing","description":".NET 測試基礎技能總覽與引導中心。當使用者詢問「如何寫 .NET 測試」、「.NET 測試入門」、「需要哪些測試工具」、「測試最佳實踐」、「從零開始學測試」等一般性測試需求時觸發。會根據具體需求推薦適合的子技能組合，涵蓋測試基礎、測試資料、斷言、模擬、特殊場景等 19 個基礎技能。\nMake sure to use this skill whenever the user asks about .NET testing in general, wants to know which testing tool to use, or needs guidance on getting started with testing, even if they don't explicitly ask for an overview.\nKeywords: dotnet testing, .NET 測試, 測試入門, 如何寫測試, 測試最佳實踐, unit test, 單元測試, xunit, 3A pattern, FIRST 原則, assertion, 斷言, mock, stub, NSubstitute, test data, AutoFixture, Bogus, validator, FluentValidation, TimeProvider, IFileSystem, code coverage, ITestOutputHelper, test naming"},"skills_sh_url":"https://skills.sh/kevintsengtw/dotnet-testing-agent-skills/dotnet-testing"},"updatedAt":"2026-04-24T13:02:27.720Z"}}