什么是组织C++;要进行单元测试的项目? 我想知道什么是组织C++项目和类的有效方法。我读过很多与单元测试相关的文章,但找不到实际的例子
以下是我收集的一些方法: 方法A什么是组织C++;要进行单元测试的项目? 我想知道什么是组织C++项目和类的有效方法。我读过很多与单元测试相关的文章,但找不到实际的例子,c++,visual-studio,code-organization,C++,Visual Studio,Code Organization,以下是我收集的一些方法: 方法A 项目A:包含项目C中类的应用程序(.exe)项目 项目B:单元测试(.exe)项目,“包括”项目C中的类 项目C:保存项目A使用的所有类的静态库(.lib)项目 方法B 项目A:应用程序(.exe)项目,其内部包含所有类 项目B:与项目A中的类“链接”的单元测试(.exe)项目 方法C(来自米格尔) 只有一个项目,有三种配置: 调试:在调试模式下生成应用程序.exe 发布:在发布模式下生成应用程序.exe 测试:构建单元测试框架,将应用程序的main
- 项目A:包含项目C中类的应用程序(.exe)项目
- 项目B:单元测试(.exe)项目,“包括”项目C中的类
- 项目C:保存项目A使用的所有类的静态库(.lib)项目
- 项目A:应用程序(.exe)项目,其内部包含所有类
- 项目B:与项目A中的类“链接”的单元测试(.exe)项目
- 只有一个项目,有三种配置:
- 调试:在调试模式下生成应用程序.exe
- 发布:在发布模式下生成应用程序.exe
- 测试:构建单元测试框架,将应用程序的main()替换为单元测试main()
哪种方式更合适?您还有其他建议吗?实际上没有太大区别,因为您可以始终将exe编译为静态库,并链接到单元测试。从概念上讲,方法A稍微干净一点,但没有任何东西阻止您使用方法B。它基本上归结为您的构建系统更容易做到的事情。我认为将应用程序的类移动到静态库不会有多大好处。您还应该考虑在编译测试时需要修改类,例如通过添加应用程序不需要的其他便利方法,所以最终将类放在库中可能没有帮助,因为在运行测试时需要这些类的特殊版本。 我想提出以下建议,作为比您的方法a和B更好的选择: 方法C
- 只有一个项目,有三种配置:
- 调试:在调试模式下生成应用程序.exe
- 发布:在发布模式下生成应用程序.exe
- 测试:构建单元测试框架,将应用程序的main()替换为单元测试main()
如果您认为需要,也可以将测试目标分为调试和发布。我以前很好地使用了第一种方法。将大部分代码放在静态库项目中,让主可执行项目只包含主函数,让测试和测试主函数放在第三个项目中。这两个可执行项目将链接到静态库并重用代码 这样做的主要好处是:
- 正在测试的代码与应用程序中使用的版本完全相同
- 您可以测试调试和发布配置,以确保两者都按预期工作。(您可以推断可能需要的任何配置的调试和发布。)
- 由于在两个可执行项目中使用相同的生成库,因此生成时间被最小化
- 可以让构建系统同时构建测试和主可执行文件,也可以在构建后运行测试可执行文件李>