我刚刚开始使用TDD,并对其他人进行测试的方式感到好奇。作为引用,我使用的是Google测试框架,但我认为该问题适用于大多数其他测试框架以及C/C++以外的语言。
到目前为止,我的一般方法是做以下三件事之一:
这些解决方案都不是特别优雅...
您如何呢?
最佳答案
我倾向于使用静态库而不是dll,因此我的大多数C++代码最终还是以静态库结尾,并且正如您所发现的,它们与dll一样容易测试。
对于内置到exe中的代码,我有一个单独的测试项目,该项目仅包含正在测试的源文件,这些文件通常内置在exe中,或者我构建了一个包含大多数exe的新静态库,并在我测试所有其他静态库的方式相同。我发现在对现有应用程序进行测试改造时,我通常会采用“库中的代码最多”的方法来处理新项目,并采用“将exe项目中的源文件拖入测试项目中”的方法。
我完全不喜欢您的选项2和3。管理2的构建配置可能比拥有一个单独的测试项目(仅提取所需的源并将所有测试包含到exe中)要难,就像您在3中建议的那样;)