瞎扯淡 突发奇想问题:测试中 assert_not 和 if 的区别

QueXuQ · 2020年07月07日 · 最后由 zhengpd 回复于 2020年07月07日 · 1941 次阅读

我看了 Python 的测试库和 Rails 的测试都非常类似。
测试都是提供断言。
去判断结果是否正确。
那为什么提供的是 assert_not(Rails) 或 assertEqual(Python) 类似的写法,而不是直接用 if,if else 表达就好了呢?
虽然提供了方法会方便些,但是这么做的本质原因是什么?

  • assert 的关注点是“结果的校验”:结果应该正确,不正确的话就失败。开发人员不需要主动考虑失败的方式
  • if 的关注点是“逻辑的流程”:如果 x 那么 y。if 替代 assert 的话,就需要针对 if 的结果多一步的思考以及多一步的代码(比如怎么触发失败)

所以,不靠谱猜测,本质原因是为了高效率开发

需要 登录 后方可回复, 如果你还没有账号请 注册新账号