国潮造物局 · 实操文章
Copilot 写测试:先定预期值,避免把错误实现也测成正确
用折扣计算小函数练习正常值、边界值和无效输入;测试要能识别一个故意错误。
本页目录 · 18个部分
你卡在哪动手前准备适合用什么工具练习材料(本站设计)操作 1操作 2操作 3操作 4操作 5操作 6做完应该得到什么不成功时怎么调整适用场景可以直接用的任务验收标准工具与原始资料动手验证继续解决相关问题国潮造物局编辑部 · 资料整理日期 2026-10-21 · 编程实践 · 9分钟
基于官方公开资料编写的练习方案,未逐项登录工具实测。界面、费用与版本以官网为准。
你卡在哪
测试从错误实现反推期望值,会把 bug 测成“正确”。
动手前准备
先手写期望:100×0.2→80;负原价/折扣>1应拒绝。再让 Copilot 写测试。
适合用什么工具
VS Code + GitHub Copilot
练习材料(本站设计)
练习约定:折后价=原价×(1-折扣率),原价不得为负,折扣率在0到1之间。示例100与0.2应得80,0与0.2应得0;负原价或折扣率1.2应明确拒绝。小数舍入口径需自行先约定。
操作 1
打开已有测试框架的练习项目。先手写上面的输入和期望结果,不能让工具从当前函数输出反推“正确答案”。
操作 2
在聊天中附上函数与测试配置,要求沿用现有框架。没有框架的简单项目先用语言自带测试能力,不为了一个练习引入大量依赖。
操作 3
让Copilot生成正常、边界和无效输入测试,检查每个断言是否对应事先约定。存在浮点数时明确比较方式,不随便放宽到任何结果都通过。
操作 4
在测试面板或项目命令中运行,查看实际通过和失败数量。VS Code能否发现测试取决于语言与扩展配置,不能把“未发现测试”当成全部通过。
操作 5
只在练习副本里故意把减号改成加号,再运行:100和0.2的测试应失败。随后恢复正确实现并复测。这个动作检查测试是否真在覆盖逻辑。
操作 6
保存测试、约定与执行命令。额外功能不在本篇范围,别让生成器把一个小函数扩成优惠系统。
做完应该得到什么
测试能通过正确实现,也能抓到练习中的明显错误;预期值有独立依据。
不成功时怎么调整
所有测试都通过但故意错误抓不到:检查是否真的运行到目标函数,断言是否写死。测试未发现:先检查配置与命名规则。
适用场景
用折扣计算小函数练习正常值、边界值和无效输入;测试要能识别一个故意错误。
可以直接用的任务
沿用项目现有测试框架,为给定函数写测试。预期值以我列出的业务约定为准,不能调用被测函数来计算期望值。涵盖正常、边界和无效输入,并给出实际运行命令。
验收标准
测试能通过正确实现,也能抓到练习中的明显错误;预期值有独立依据。