关于 test-data-generation
用于为自动化测试和开发生成真实、一致测试数据的技能,涵盖可复用工厂、夹具、构建器及多样化场景,包括边界情况和关联数据。
主要功能
- 01可复用的数据工厂
- 02复杂对象构建器
- 03集成测试夹具
- 04真实且唯一的数据值
- 05边界与极端测试数据
适用场景
- 01创建集成测试夹具
- 02填充开发数据库
- 03生成关联测试记录
- 04测试边界值和异常输入
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill test-data-generation安装后在 Claude Code 中输入/test-data-generation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/builder-pattern-for-complex-objects.mdfactory-pattern-for-test-data.mdfixtures-for-integration-tests.mdrealistic-data-generation.mdscripts/scaffold-tests.shtemplates/test-template.js详细介绍
测试数据生成
目录
概述
测试数据生成可为自动化测试创建真实、一致且易于维护的测试数据。设计良好的测试数据可以减少测试的不稳定性、提升可读性,并更轻松地创建多样化的测试场景。
适用场景
- 为集成测试创建测试夹具
- 为开发数据库生成虚假数据
- 构建具有复杂关系的测试数据
- 为测试创建真实的用户输入
- 为测试数据库填充数据
- 生成边界情况和边界值
- 构建可复用的测试数据工厂
快速开始
最简可运行示例:
// tests/factories/userFactory.js
const { faker } = require("@faker-js/faker");
class UserFactory {
static build(overrides = {}) {
return {
id: faker.string.uuid(),
email: faker.internet.email(),
firstName: faker.person.firstName(),
lastName: faker.person.lastName(),
age: faker.number.int({ min: 18, max: 80 }),
phone: faker.phone.number(),
address: {
street: faker.location.streetAddress(),
city: faker.location.city(),
state: faker.location.state(),
zip: faker.location.zipCode(),
country: "USA",
},
role: "user",
isActive: true,
createdAt: faker.date.past(),
...overrides,
};
}
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| 测试数据工厂模式 | 测试数据工厂模式 |
| 复杂对象的构建器模式 | 复杂对象的构建器模式 |
| 集成测试的测试夹具 | 集成测试的测试夹具 |
| 真实数据生成 | 真实数据生成 |
最佳实践
✅ 应该
- 使用 faker 库生成真实的数据
- 为常见对象创建可复用的工厂
- 让工厂支持灵活覆盖
- 在需要时生成唯一值(电子邮件、ID)
- 使用构建器构造复杂对象
- 创建用于集成测试设置的测试夹具
- 生成边界情况(空字符串、null、边界值)
- 尽可能让测试数据保持确定性
❌ 不应该
- 在多个位置硬编码测试数据
- 在测试中使用生产数据
- 为可复现的测试生成真正的随机数据
- 创建过于复杂的工厂层级结构
- 忽略数据关系和约束
- 为简单测试生成庞大的数据集
- 忘记清理生成的数据
- 在所有测试中使用相同的测试数据
评论
支持 Markdown