红的时候是失败还是出错
先红,再绿,再整理 写测试 写代码 重构 红:代码还没有 绿:代码让它过了 改完实现,还得绿 先写了 test_fmt,此时 fmt 还没定义。跑起来这条用例算【0】。
重构那一拍在守什么
先红,再绿,再整理 写测试 写代码 重构 红:代码还没有 绿:代码让它过了 改完实现,还得绿 fmt 写好、测试绿了。第三拍「重构」是把 fmt 的实现改得更简洁。这一拍成立的前提是【0】。
红:函数还不存在
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 先写 fmt 的测试,此时还没有 fmt。运行程序,看三个数: import io, unitte
红:函数有了但还不对
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) fmt 有了第一版(只做四舍五入,不去尾零)。同样两条测试,运行程序: import io, un
补全:让测试变绿
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) fmt 第一版让 test_strip_zero 挂了。改 fmt(去掉尾部的 0 和小数点),让
补全:再加一条红的,再变绿
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 新需求:fmt(0.001) 应该是 "0" 而不是空串。先补一条测试 tes
补全:重构不许把绿改红
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) fmt 已经绿了。把它重构成用 round 加 str 的另一种写法(fmt2),三条测试对两个版
收到 bug 报告先做什么
用户反馈「42 厘米换成米算出来是 4.2」。按测试驱动修复的做法,动手改代码之前先【0】。
修好之后那条测试怎么办
bug 修好,复现它的那条测试变绿了。这条测试应该【0】。
复现 bug 的测试红了
length 里 cm 的系数被写成了 0.1。写一条按用户报告复现的测试,运行程序: import io, unittest LEN = {"m": 1.0, "km": 1000.0, &quo