使用 C++ Boost.Test 组织单元测试?
Organization of unit tests with C++ Boost.Test?
我一直在阅读有关单元测试的文章,我对如何组织不同程序组件的测试有点困惑。我假设每个类通常都有自己的一组单元测试。㞖:
- 每个要测试的类都应该有自己的单元测试.cpp文件吗?
- 如何将所有单元测试.cpp文件组合在一起?
- 单元测试文件是否进入其自己的单独 VS 项目?如果是这样,它是在需要时手动运行,还是可以以某种方式连接到您的实际项目?
- 测试服的目的是什么?
这都是你的选择。
-
如果你想要黑盒测试,当然。我还做过白盒测试,其中单元测试 CPP 包括静态定义也包含在实现 cpp (
中.ipp
( -
只需链接包含测试的对象文件,就像您通常所做的那样。 带有测试的静态库也可以。
-
他们通常会这样做。当然,您可以将所有文件(包括测试(放在程序和测试运行程序所依赖的单个项目/库中。
但通常最好不要在主程序中链接/包含测试。这不仅如此
- 减小尺寸
- 降低信息泄露的风险(例如测试夹具数据/详细信息(
它还使您可以自由地为测试添加您不想包含在已部署软件中的依赖项(例如模拟框架,SQLite(
-
目的正是组织您的测试。假设您是否在多个翻译单元中进行了与"文本文件导入"相关的测试。
特别是测试套件
- 可以嵌套,
- 就像命名空间一样(在多个翻译单元中打开相同的"套件"命名空间会合并该单个套件中的所有测试(
- 可以具有"全局"设置/拆卸和标签
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 使用 C++ Boost.Test 组织单元测试?
- 如何使用google test在单元测试中模拟不同的时区
- 在Visual Studio中执行单个Boost Test单元测试