我已经将CppUnit和boost::test用于 C++ 单元测试。通常我更喜欢boost::test,主要是因为自动测试宏最大限度地减少了设置测试的工作量。但是我真的很怀念一件事CppUnit:注册自己的“保护器”的能力,其实例会自动包装所有运行测试。(从技术上讲,您安装了一个测试“侦听器”,它可以将每个测试包装在一个保护器范围内)。
在过去,我发现这些对于监控单元测试的意外副作用非常宝贵(例如,检查代码没有更改浮点单元状态标志)。boost::test 我在文档中看不到任何等效项,尽管BOOST_FIXTURE_TEST_CASE可能最接近。
关于如何最好地实现与 CppUnit 的保护器相同的事情的任何建议boost::test?
(我还没有真正研究过boost::test' 的实现,但如果它像CppUnit它必须使用非常像保护器本身的东西)。