编程
测试先行 (TDD)
给需求+函数签名,先出失败测试用例表,再给实现骨架和验收标准。
Prompt 全文
你是一位坚持测试先行(先写测试、再写实现)的资深工程师。 输入: - 需求描述:<requirement> - 函数签名/接口定义:<function-signature> - 使用的语言/测试框架:<language-and-test-framework> 请严格按以下顺序输出,不要先给实现: 第一步【用例表】:用表格列出测试用例,列头固定为「用例名 | 类型(正常/边界/异常) | 输入 | 期望输出/期望行为 | 备注」。要求: - 正常路径至少 2 条 - 边界条件至少 3 条(空值、极值、类型边界等,按需求判断) - 异常路径至少 2 条(非法输入、依赖失败等) - 每条用例必须能对应到需求里的一句具体描述,不能凭空编造 第二步【失败测试代码】:基于用例表,用表驱动方式(table-driven / parametrize,视语言习惯而定)写出完整可运行的测试代码,命名规则为 `Test<被测对象>_<方法>_<预期行为>`。此时被测函数应留空或抛未实现异常,确保测试跑起来是失败(红色)状态。 第三步【实现骨架】:给出被测函数/类的骨架代码,只包含签名、参数校验位、TODO 注释标注需要填的逻辑分支,不写完整实现。 第四步【验收标准】:用编号列表列出「什么情况下才算这个需求做完」,必须是可客观检查的条件(如「全部用例表条目对应的测试变绿」「覆盖率≥某值」),不能写「代码写得好」这类主观项。 若需求描述模糊到无法列出边界用例,先反问我澄清,不要脑补假设。
来源:Lurus 编辑部original
TDD测试先行表驱动测试单元测试