如何在cppunit中捕获异常

how to catch exception in cppunit

本文关键字:捕获异常 cppunit      更新时间:2023-10-16

我们使用CPPUnit来测试我们的测试框架

测试组织在测试fixture中(继承自CPPUNIT_NS::TestFixture)

有一个新的要求-只有当测试失败时才在测试结束时清除应用程序缓冲区。

我可以在Test Fixture中的重载teardown()函数中做到这一点。但是如何知道测试是否失败。

使用CPPUNIT_ASSERT检查测试的结果。

大约有12个测试装置,每个装置大约有10个测试。如何以最小的代码更改实现这一点?

我认为这取决于你如何调用你的测试,但我的第一个想法是使用TestListener并对TestListener::addFailure调用作出反应。

但是请注意,理论上tearDown也可以抛出一个异常(可能通过CPPUNIT_ASSERT),该异常也会调用TestListener::addFailure。

如果这不起作用,一个明显但非常丑陋的解决方案是在每个测试方法的末尾设置一个标志,表明测试成功完成,并在未设置标志时调用代码。