我们使用 Visual Studio 2008 开发 C++ 应用程序并使用 Boost.Test 进行单元测试。目前,我们有一个单独的解决方案,其中包含我们的单元测试。
我们在核心解决方案中的许多项目都会生成 DLL。我们的测试覆盖率有限,因为我们无法测试非导出的类。
关于如何测试这些,我有两个想法:
- 导出一切
- 将测试放在 DLL 中(相同的项目和解决方案)并使用 Boost.Test 的外部运行器
我不完全确定缺点是什么。上面的数字 1 破坏了模块级别的封装,而数字 2 可能会导致更大的 DLL,除非可以仅在某些配置中包含测试代码。
那么,上述方法是否存在严重的缺陷,或者您能想到其他解决方案吗?