资讯动态

tdd-workflows-tdd-red - SKILL

发布时间:2026/10/10 12:26:21 来源:尧图企业网站定制
name: tdd-workflows-tdd-reddescription: “Generate failing tests for the TDD red phase to define expected behavior and edge cases.”risk: criticalsource: communitydate_added: “2026-02-27”编写全面的失败测试遵循 TDD 红色阶段原则。[扩展思考生成适当定义预期行为的失败测试使用 test-automator 代理。]何时使用此技能开始新行为的 TDD 红色阶段时你需要捕获预期行为的失败测试时你希望在实现之前获得边界情况覆盖时何时不使用此技能你处于绿色或重构阶段时你只需要性能基准时测试必须在生产系统上运行时说明识别行为、约束和边界情况。生成定义预期结果的失败测试。确保失败是由于缺少行为而非设置错误。记录如何运行测试并验证失败。安全保持测试数据隔离避免生产环境。在红色阶段避免不稳定的外部依赖。角色使用 Task 工具生成失败的测试subagent_type“unit-testing::test-automator”。提示词模板为$ARGUMENTS 生成全面的失败测试核心要求测试结构框架适配的设置Jest/pytest/JUnit/Go/RSpec准备-执行-断言Arrange-Act-Assert模式should_X_when_Y 命名约定无相互依赖的隔离夹具行为覆盖正常路径场景边界情况空值、null、边界值错误处理和异常并发访问如适用失败验证测试运行时必须失败失败原因正确不是语法/导入错误有意义的诊断错误消息没有级联失败测试类别单元隔离的组件行为集成组件交互契约API/接口契约属性数学不变量框架模式JavaScript/TypeScriptJest/Vitest使用vi.fn()或jest.fn()模拟依赖对 React 组件使用testing-library使用fast-check进行属性测试Pythonpytest使用适当作用域的夹具fixtures使用 Parametrize 处理多个测试用例使用 Hypothesis 进行基于属性的测试Go使用子测试的表格驱动测试使用t.Parallel()进行并行执行使用testify/assert获得更清晰的断言RubyRSpec使用let进行惰性加载let!进行急切加载使用上下文Contexts处理不同场景使用共享示例Shared examples处理公共行为质量检查清单可读的测试名称记录意图每个测试一个行为无实现泄漏有意义的测试数据不是 ‘foo’/‘bar’测试充当活文档要避免的反模式测试立即通过测试实现而非行为复杂的设置代码每个测试多个职责绑定到具体细节的脆弱测试边界情况类别Null/空undefined、null、空字符串/数组/对象边界最小/最大值、单个元素、容量限制特殊情况Unicode、空白、特殊字符状态无效转换、并发修改错误网络失败、超时、权限输出要求包含导入的完整测试文件测试目的文档运行和验证失败的命令指标测试数量、覆盖区域绿色阶段的后续步骤验证生成后运行测试 - 确认它们失败验证有帮助的失败消息检查测试独立性确保全面覆盖示例最小// auth.service.test.tsdescribe(AuthService,(){letauthService:AuthService;letmockUserRepo:jest.MockedUserRepository;beforeEach((){mockUserRepo{findByEmail:jest.fn()}asany;authServicenewAuthService(mockUserRepo);});it(should_return_token_when_valid_credentials,async(){constuser{id:1,email:testexample.com,passwordHash:hashed};mockUserRepo.findByEmail.mockResolvedValue(user);constresultawaitauthService.authenticate(testexample.com,pass);expect(result.success).toBe(true);expect(result.token).toBeDefined();});it(should_fail_when_user_not_found,async(){mockUserRepo.findByEmail.mockResolvedValue(null);constresultawaitauthService.authenticate(noneexample.com,pass);expect(result.success).toBe(false);expect(result.error).toBe(INVALID_CREDENTIALS);});});测试要求$ARGUMENTS局限性仅在任务明确匹配上述范围时使用此技能。不要将输出视为环境特定验证、测试或专家审查的替代品。如果缺少所需的输入、权限、安全边界或成功标准请停下来询问澄清。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑