【发布时间】:2017-09-08 08:29:47
【问题描述】:
正如本文Exception vs Assert? 中提到的,异常用于运行时错误条件,而断言用于编码错误。
据我所知,单元测试用于验证函数的功能。除了我们已经知道结果的合法测试用例之外,是否还要在unit-test中编写一些非法的测试用例来测试是否发生了断言或者是否抛出了异常?
【问题讨论】:
-
取决于函数的功能。如果指定它必须在某些输入上引发异常,则必须对其进行测试。如果它被指定在某些输入和未定义的行为上产生一些行为,否则你 d̶o̶n̶'̶t̶ 不能。
-
由于
assert出现编码错误,您应该无法“启动”它们(如果可以的话,无论如何都会是 UB)。
标签: c++ function unit-testing exception assert