Token导航 LogoToken导航

Agent Skill · 待分类

dotnet-testing-advanced-aspnet-integration-testing(dotnet 测试高级 aspnet 集成测试)

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

dotnet-testing-advanced-aspnet-integration-testing 是待分类类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描已通过,按安装量在待分类类的 11,209 个 Skill 里排第 3,541。

总安装 978周安装 42GitHub Stars 24下载 343核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dotnet-testing-advanced-aspnet-integration-testing(dotnet 测试高级 aspnet 集成测试)
来源仓库:https://github.com/kevintsengtw/dotnet-testing-agent-skills
仓库路径:skills/dotnet-testing-advanced-aspnet-integration-testing
安装命令:
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-advanced-aspnet-integration-testing
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-advanced-aspnet-integration-testing

这个 Skill 是做什么的

这个 Skill 的分类还没最终确定,用法以来源仓库的说明为准。

dotnet-testing-advanced-aspnet-integration-testing 指导 ASP.NET Core 整合测试架构搭建。涵盖 WebApplicationFactory 使用、IExceptionHandler 异常标准化及 ProblemDetails 验证。

支持 Flurl 简化 HTTP 调用与 AwesomeAssertions 精准响应校验。适用于 CRUD 流程、业务链路及中间件行为验证等端到端场景。需注意测试金字塔比例控制,避免过度依赖慢速集成测试。

来源仓库内路径:skills/dotnet-testing-advanced-aspnet-integration-testing

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --ski…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

dotnet-testing-advanced-aspnet-integration-testing 怎么安装?

在终端执行 npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dotnet-testing-advanced-aspnet-integration-testing 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dotnet-testing-advanced-aspnet-integration-testing 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

dotnet-testing-advanced-aspnet-integration-testing 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

dotnet-testing-advanced-aspnet-integration-testing 用的人多吗?

公开数据是累计安装 978 次,近一周安装 42 次,下载 343 次,GitHub 24 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dotnet-testing-advanced-aspnet-integration-testing 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理待分类类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

待分类类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
infsh-cli

infsh CLI · Codex、Claude

4,374,576382权限未标注未明确未收录
ai-video-generation

AI 视频生成 · Codex、Claude

4,313,376382调用外部服务未明确有提醒
lark-openapi-explorer

云雀 OpenAPI 浏览器 · Codex、Claude

2,064,1209,011需要联网未明确有提醒
lark-workflow-standup-report

Lark 工作流程站立报告 · Codex、Claude

2,041,6328,978需要联网未明确通过
use-my-browser

使用我的浏览器 · Codex、Claude

1,848,49140操作浏览器未明确未通过
dotnet-testing-advanced-aspnet-integration-testing

dotnet 测试高级 aspnet 集成测试 · 本页

97824需要联网MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

ASP.NET Core 整合測試指南

核心概念

整合測試的兩種定義

  1. 多物件協作測試 — 將兩個以上的類別做整合,測試它們之間的運作是否正確
  2. 外部資源整合測試 — 使用到資料庫、外部服務、檔案等外部資源的測試

為什麼需要整合測試?

  • 確保多個模組整合後能正確工作
  • 單元測試無法涵蓋的整合點:Routing、Middleware、Request/Response Pipeline
  • 確認 WebApplication 的整合與設定是否正確
  • 確認異常處理是否完善

測試金字塔定位

測試類型測試範圍執行速度維護成本建議比例
單元測試單一類別/方法很快低70%
整合測試多個元件中等中等20%
端對端測試完整流程慢高10%

原則一:使用 WebApplicationFactory 建立測試環境

透過 WebApplicationFactory<Program> 建立記憶體中的 TestServer,搭配 IClassFixture 在測試類別間共享。

基本流程

  1. 測試類別實作 IClassFixture<WebApplicationFactory<Program>>
  2. 透過建構函式注入 Factory
  3. 使用 factory.CreateClient() 建立 HttpClient
  4. 對 API 端點發送請求並驗證回應

自訂 Factory

繼承 WebApplicationFactory<Program> 並覆寫 ConfigureWebHost:

  • 移除原本的 DbContextOptions,改用 UseInMemoryDatabase
  • 使用 services.Replace() 替換外部服務為測試版本
  • 設定 builder.UseEnvironment("Testing") 使用測試環境

測試基底類別

建立 IntegrationTestBase 封裝共用邏輯:

  • Factory 與 HttpClient 初始化
  • SeedShipperAsync() 等資料準備方法
  • CleanupDatabaseAsync() 清理方法
  • 實作 IDisposable 確保資源釋放
完整程式碼範例(基本使用、自訂 Factory、測試基底類別)請參考 references/webapplicationfactory-examples.md

原則二:使用 AwesomeAssertions.Web 驗證 HTTP 回應

提供流暢的 HTTP 狀態碼斷言與強型別回應驗證:

  • 狀態碼斷言:Be200Ok()、Be201Created()、Be400BadRequest()、Be404NotFound() 等
  • Satisfy 驗證:response.Should().Be200Ok().And.Satisfy<T>(result => {...})
  • 優勢:取代手動 ReadAsStringAsync() + JsonSerializer.Deserialize<T>() 的冗長程式碼

原則三:使用 System.Net.Http.Json 簡化 JSON 操作

  • PostAsJsonAsync(url, object) — 取代手動 JsonSerializer.Serialize + new StringContent
  • ReadFromJsonAsync<T>() — 取代手動 ReadAsStringAsync + JsonSerializer.Deserialize
完整斷言與 JSON 操作範例請參考 references/assertion-and-json-examples.md

三個層級的整合測試策略

Level特色測試重點Factory 設定
1無資料庫、無 ServiceAPI 輸入輸出、路由、狀態碼直接使用原始 Factory
2有 Service(NSubstitute)依賴注入配置、服務互動ConfigureTestServices
3完整架構 + 資料庫真實 CRUD、資料完整性InMemoryDatabase 替換

Level 1:簡單的 WebApi 專案

最簡單的形式,直接使用 WebApplicationFactory<Program> 測試各個 API 端點的輸入輸出。

Level 2:相依 Service 的 WebApi 專案

使用 NSubstitute 建立 Service stub,透過自訂 Factory 的 ConfigureTestServices 注入測試用服務。

Level 3:完整的 WebApi 專案

包含真實的資料庫操作,移除原本的 DbContextOptions 並改用 InMemoryDatabase,在測試中呼叫 EnsureCreated() 建立結構。

完整三個層級的程式碼範例請參考 references/three-level-testing-strategy.md

CRUD 操作測試

測試涵蓋範圍

操作測試重點
GET單一資源查詢、集合查詢、不存在資源回傳 404
POST建立成功回傳 201、驗證錯誤回傳 400
PUT更新成功、不存在資源處理
DELETE刪除成功回傳 204、不存在資源回傳 404

測試資料管理

  • 每個測試開始前呼叫 CleanupDatabaseAsync() 確保乾淨狀態
  • 使用 SeedShipperAsync() 等方法準備測試資料
  • 使用 Satisfy<T>() 驗證回應內容的正確性

完整的 CRUD 操作測試程式碼請參考 references/crud-test-examples.md

專案結構建議

tests/
├── Sample.WebApplication.UnitTests/           # 單元測試
├── Sample.WebApplication.Integration.Tests/   # 整合測試
│   ├── Controllers/                           # 控制器整合測試
│   ├── Infrastructure/                        # 測試基礎設施
│   │   └── CustomWebApplicationFactory.cs
│   ├── IntegrationTestBase.cs                 # 測試基底類別
│   └── GlobalUsings.cs
└── Sample.WebApplication.E2ETests/            # 端對端測試

常見錯誤排除

'ObjectAssertions' 未包含 'Be200Ok' 的定義

此錯誤通常是因為安裝了不相容的斷言套件組合。請確認基礎斷言庫與 Web 擴充套件版本一致。

Program 類別無法存取

確保主專案的 Program.cs 包含以下宣告,讓測試專案可以存取:

public partial class Program { }

測試資料互相干擾

  • 每個測試開始前清理資料庫
  • 不要依賴其他測試的執行順序
  • 使用唯一識別碼避免資料衝突

套件相容性

基礎斷言庫正確的套件
FluentAssertions < 8.0.0FluentAssertions.Web
FluentAssertions >= 8.0.0FluentAssertions.Web.v8
AwesomeAssertions >= 8.0.0AwesomeAssertions.Web
<!-- 推薦組合 -->
<PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="AwesomeAssertions.Web" Version="1.9.6" />

最佳實踐

應該做

  1. 獨立測試專案 — 整合測試與單元測試分離
  2. 測試資料隔離 — 每個測試案例有獨立的資料準備和清理
  3. 使用基底類別 — 共用設定和輔助方法放在基底類別
  4. 明確的命名 — 使用三段式命名法(方法_情境_預期)
  5. 適當的測試範圍 — 專注於整合點,不過度測試

應該避免

  1. 混合測試類型 — 不要將單元測試和整合測試放在同一專案
  2. 測試相依性 — 每個測試應獨立,不依賴其他測試的執行順序
  3. 過度模擬 — 整合測試應盡量使用真實元件
  4. 忽略清理 — 測試完成後要清理測試資料
  5. 硬編碼資料 — 使用工廠方法或 Builder 模式建立測試資料

輸出格式

  • 產生 CustomWebApplicationFactory.cs,配置測試用 DI 容器與資料庫替換
  • 產生 IntegrationTestBase.cs 測試基底類別,包含資料準備與清理方法
  • 產生控制器測試類別(*ControllerTests.cs),涵蓋 CRUD 操作驗證
  • 修改測試專案 .csproj,加入 Microsoft.AspNetCore.Mvc.Testing 與 AwesomeAssertions.Web
  • 確保主專案 Program.cs 包含 public partial class Program {} 以支援測試存取

參考資源

原始文章

  • Day 19 - 整合測試入門:基礎架構與應用場景

- 鐵人賽文章:https://ithelp.ithome.com.tw/articles/10376335 - 範例程式碼:https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day19

官方文件

相關技能

  • unit-test-fundamentals - 單元測試基礎
  • nsubstitute-mocking - 使用 NSubstitute 進行模擬
  • awesome-assertions-guide - AwesomeAssertions 流暢斷言
  • testcontainers-database - 使用 Testcontainers 進行容器化資料庫測試

平台分布

Claude Code

26.58%
按下载量换算91

Gemini CLI

21.63%
按下载量换算74

Antigravity

16.51%
按下载量换算57

OpenCode

12.37%
按下载量换算42

windsurf

8.99%
按下载量换算31

github-copilot

3.46%
按下载量换算12

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills