SuperAPI AI 工具集

test-driven-development

编程与开发

查看项目

更新于 10-16 04:31

技能介绍

用途:为 Rails 应用提供严格的测试驱动开发(TDD)工作流,适用于实现新功能、修复缺陷或改变既有行为。核心原则是“没有失败的测试,就不写生产代码”;若先写了代码,应删除并从头开始,不保留作参考、不边写测试边改造。

主要能力:采用由外向内开发,从描述用户行为的高层测试开始,读取失败信息并据此决定下一步。失败指向下层行为时,先在该层写一个失败测试再实现,形成失败测试栈。每做一次改动就立即运行受影响的测试,例如 bundle exec rspec spec/features/guest_searches_for_items_spec.rb,不批量改动、不提前猜测。

测试层次:功能/系统规格对应端到端用户行为;请求(或控制器)规格对应控制器动作、响应、状态或重定向;模型/单元规格对应模型、服务对象、查询、计算或校验逻辑。功能与请求规格属集成测试,使用真实数据库记录、不用 mock,仅外部服务用 webmock 或 fake;单元规格隔离被测对象,积极 mock 协作者。仅无自身行为的惰性粘合代码(路由、空类、已被覆盖的琐碎标记)可直接编写,且必须由上层失败测试驱动。

红-绿-重构:RED 写一个最小失败测试并验证其因功能缺失而失败;GREEN 写刚好通过的最简代码并验证通过且其他测试仍绿;REFACTOR 仅在绿后清理重复、改进命名、抽取辅助,不新增行为。随后弹出栈,重跑上一层测试,继续直到顶层功能规格变绿、栈为空。

限制与要求:测试须最小、命名清晰、展示意图;禁止测试后补、禁止一次运行前做多个改动、禁止保留或改造先写的代码。完成前需核对每个新方法都有测试、每层都有先行失败测试、输出无错误警告、覆盖边界与错误。资料未提供安装方式、收费、平台支持或效果数据。