测试不应包含逻辑。

主要观点:测试应包含尽可能少的逻辑,以避免测试失败时测试本身成为罪魁祸首,应避免在测试中使用控制流或条件逻辑;以 Fizzbuzz 为例,展示了逻辑错误在测试中被重复导致测试成功而实际代码有 bug 的情况,以及写出“明显”测试能暴露逻辑 bug;还介绍了使用参数化测试(也称为表驱动测试)来减少测试样板代码的更好方法。
关键信息:测试应简洁,避免内部逻辑;Fizzbuzz 代码存在逻辑错误;原测试重复错误导致成功,“明显”测试能暴露 bug;参数化测试可通过 pytest 框架实现,对一系列输入和预期输出进行参数化测试。
重要细节:原 Fizzbuzz 函数根据不同条件返回不同字符串或原数字字符串;原测试用例虽遍历范围但重复了实现中的逻辑错误;参数化测试通过@pytest.mark.parametrize装饰器对输入和输出进行参数化,多个测试用例可在一个函数中定义。

阅读 10
0 条评论