Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问clear审计通过

dotnet-testing-test-data-builder-patterndotnet 测试测试数据生成器模式

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

574

周安装

23

GitHub Stars

24

下载量

186
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-test-data-builder-pattern

简介

用于构建清晰可维护的 .NET 测试数据生成模式。

  • 解决固定测试数据和重复代码问题,提升测试意图表达。
  • 通过 Builder 模式简化对象初始化,支持灵活调整属性。
  • 适用于单元测试中复杂对象的构造,增强测试可读性。
  • dotnet-testing-test-data-builder-pattern 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Test Data Builder Pattern 測試資料建構器模式

核心概念

什麼是 Test Data Builder Pattern?

Test Data Builder Pattern 是 Object Mother Pattern 的改良版,主要解決以下問題:

  1. 固定測試資料的問題:Object Mother 提供固定的測試物件,難以針對特定測試情境調整
  2. 測試意圖不明確:直接建立物件時,測試的關注點容易被大量屬性設定所掩蓋
  3. 重複程式碼:相似的物件建立邏輯在多個測試中重複出現

為何需要 Builder Pattern?

// ❌ 問題:過多參數設定,測試意圖不明確
var user = new User
{
    Name = "John Doe", Email = "john@example.com", Age = 30,
    Roles = new[] { "User" }, Settings = new UserSettings { Theme = "Dark", Language = "zh-TW" },
    IsActive = true, CreatedAt = DateTime.Now, ModifiedAt = DateTime.Now
};

// ✅ 改善:意圖明確,只設定測試關注的屬性
var user = UserBuilder.AUser().WithName("John Doe").WithValidEmail().Build();

實作指南

基本 Builder 結構

一個標準的 Test Data Builder 應包含:

  1. 預設值:為所有必要屬性提供合理的預設值
  2. 流暢介面:使用 With* 方法鏈來設定屬性
  3. 語意化方法:提供有意義的預設建立者(如 AnAdminUser()ARegularUser()
  4. Build 方法:最終建立並回傳目標物件

涵蓋完整 UserBuilder 實作(預設值、With* 流暢方法、語意化靜態工廠方法、Build 方法)、單一測試情境與配合 Theory 使用的範例。

完整 Builder 實作與測試使用範例請參考 references/builder-implementation.md

最佳實踐

涵蓋五項實踐:提供合理的預設值、使用語意化命名(UserScenarios)、Builder 之間的組合(OrderBuilder 組合 UserBuilder + ProductBuilder)、避免過度複雜化、統一管理測試資料(TestData 靜態類別)。

完整最佳實踐與進階模式請參考 references/best-practices-and-patterns.md

與其他模式的比較

Test Data Builder vs. Object Mother

特性Test Data BuilderObject Mother
彈性高度彈性,可針對測試調整固定的測試資料
可讀性流暢介面,意圖明確需要查看方法實作
維護性集中管理,易於修改變更影響所有測試
使用場景單元測試、情境測試簡單的整合測試

Test Data Builder vs. AutoFixture

特性Test Data BuilderAutoFixture
控制度完全控制物件建立自動產生,控制度較低
設定複雜度需手動建立 Builder幾乎零設定
測試意圖非常明確需額外說明
適用時機需要精確控制的測試大量資料產生、匿名測試
建議:Test Data Builder 和 AutoFixture 可以相輔相成。簡單情境使用 AutoFixture,複雜情境或需明確意圖時使用 Builder Pattern。

實戰範例

請參考 templates/ 目錄下的完整實作範例:

  • user-builder-example.cs - 基本 User Builder 實作
  • advanced-builder-scenarios.cs - 進階 Builder 組合與使用情境
  • builder-with-theory.cs - Builder 配合 xUnit Theory 的實務範例

輸出格式

  • 產生 Builder 類別檔案(如 UserBuilder.csProductBuilder.cs),放置於測試專案的 Builders/ 目錄
  • 每個 Builder 包含預設值、With* 流暢方法、語意化靜態工廠方法與 Build() 方法
  • 若需要跨測試共用,產生 TestData.cs 靜態類別集中管理常用測試資料
  • 產生對應的測試類別檔案(*Tests.cs),示範 Builder 的使用方式

參考資源

原始文章

本技能內容提煉自「老派軟體工程師的測試修練 - 30 天挑戰」系列文章:

  • Day 10 - AutoFixture 基礎:自動產生測試資料 (Builder Pattern 概念)

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

延伸閱讀

相關技能

  • autofixture-basics - 使用 AutoFixture 自動產生測試資料
  • xunit-project-setup - xUnit 測試專案的基礎設定
  • test-naming-conventions - 測試命名規範

總結

Test Data Builder Pattern 是撰寫可維護測試的重要技巧:

  • 使用時機:測試物件有多個屬性、需重複使用測試資料、希望表達清晰意圖
  • 核心優勢:提升可讀性、降低維護成本、增強表達力
  • 注意事項:保持 Builder 簡單、提供合理預設值、使用語意化方法名稱

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

28.66%
按下载量换算53

Gemini CLI

21.28%
按下载量换算40

Antigravity

17.47%
按下载量换算32

OpenCode

13%
按下载量换算24

windsurf

7.52%
按下载量换算14

github-copilot

3.1%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

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

安装前确认

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

来源信息

继续浏览同类 Skills