C ++ Catch Framework处理C的断言?

时间:2016-10-01 15:58:00

标签: c++ assert catch-unit-test

我使用Phil Squared的Catch Testing框架和一些使用assert的第三方代码进行单元测试。

在开发过程中,它经常会安静,通过一些错误断言引发并且程序中止。在这些情况下,Catch不会报告任何日志和其他诊断信息。

有没有办法“重定向”这个程序堕胎并让Catch处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

你无法捕捉断言,但你可以重新定义它。原始断言只是终止程序,它不会抛出异常,所以你无法捕获它。但断言是一个宏,你可以取消原始宏并定义自己的宏。在C ++程序中,以这种方式重新定义断言是一种常见的技巧,它会抛出异常。然后你就可以在测试中捕获它。