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

QueXuQ · July 07, 2020 · Last by zhengpd replied at July 07, 2020 · 1930 hits

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

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.