AlmostEqual 救了谁
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 同一个浮点结果,一条用 assertEqual、一条用 assertAlmostEqual。运行程
补全:挑对断言方法
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 三条用例各缺一句断言:整数结果用 assertEqual,浮点结果用 assertAlmostEq
补全:把一坨断言拆成三条用例
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) test_all 把三个断言塞在一起,第一个就挂了,后面两个没跑。拆成三个方法,让报告说清挂了几条
边界值是什么
给 length 写用例。下面四个输入里,属于「边界值」的是【0】。
异常路径怎么测
length(1, "li", "m") 会抛 ValueError。要断言「它确实抛了」,该用【0】。
三类用例各守什么
正常值、边界值、异常输入各写一条。少了「异常输入」那一条,最直接的后果是【0】。
三类用例一起跑
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 正常、边界、异常各一条。运行程序: import io, unittest LEN = {&qu
该抛的没抛
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 把 length 换成一个「不认识的单位就当米」的坏版本,再跑同一条异常用例: import io
补全:边界用例
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 补一条边界用例:-40 摄氏度换成华氏度还是 -40。输出 run 的结果。
补全:异常用例
(每道题开头都有同一段:被测模块 c_to_f / length,和一个静音跑测试的 run(),它交回「跑了几条/挂了几条/出错几条」。) 补一条异常用例:length(1, "m", "yd")