如何将单元测试与assert()结合起来

时间:2011-05-03 11:28:14

标签: c++ c unit-testing assert

假设使用assert()检查对象函数的前提条件。那么,如果我在这个过程中没有撕掉我的头发,那么当我将无效参数传递给函数时,如何编写有意义的单元测试来捕获前提条件失败?

我的意思是,assert()abort(),那么我怎么能在那之后执行所有其他测试呢?

3 个答案:

答案 0 :(得分:4)

您可以使用在单元测试时调用单元测试框架的宏替换assert(),否则将其评估为assert()

答案 1 :(得分:4)

随着时间的推移,我越来越不热衷于使用assert。但是如果你想使用它,我建议编写你自己的版本,抛出异常(可以捕获),而不是调用abort()。

答案 2 :(得分:3)

在子流程中运行测试。传递无效参数将导致子节点中止,但您的测试(父节点)将继续运行。