Ale*_*lke 5 c++ unit-testing cppunit exit
我有一个要测试的简单函数。函数是这样的:
void func()
{
// do some work
...
if(error_detected)
{
fatal_error("failure...");
exit(1);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我必须编写一个产生错误的测试。只有exit(1)存在失败的测试,仍然如此!
这个案子一般是怎么处理的?
我可以重写/更改功能代码,因为我可以完全控制整个项目。但是,我正在使用 cppunit 并希望我可以将其作为套件中的测试之一。
更新:
关于所提出的一些解决方案,我想提出一个注意事项:添加了一个可以根据我们是否正在测试而以不同方式实现的接口并不是一种强大的测试方式。这是为什么?因为我将使用一个接口进行测试,该接口在测试中的实现与现实世界中的不同。测试结果并不能证明现实世界的情况会正常工作。至少不是 100%(它只能证明该路径确实是在特定情况下采用的。)