gpt4 book ai didi

c++ - 使用 C++ Boost.Test 组织单元测试?

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:03 24 4
gpt4 key购买 nike

我一直在阅读单元测试,但对于不同程序组件的测试是如何组织的,我有点困惑。我假设每个类(class)通常都有自己的一组单元测试。如果是这样:

  1. 每个要测试的类都应该有自己的单元测试 .cpp 文件吗?
  2. 如何将所有单元测试.cpp 文件组合在一起?
  3. 单元测试文件是否放入它们自己单独的 VS 项目中?如果是这样,它是在需要时手动运行,还是可以以某种方式连接到您的实际项目?
  4. 测试服的用途是什么?

最佳答案

这一切都是你的选择。

  1. 如果您想要黑盒测试,当然可以。我还进行了白盒测试,其中单元测试 CPP 包含的静态定义也包含在实现 cpp (.ipp)

  2. 只需像往常一样链接包含测试的目标文件。带有测试的静态库也很好。

  3. 他们通常会这样做。您当然可以将所有文件(包括测试)放在您的程序和测试运行器所依赖的单个项目/库中。

    但通常最好不要在主程序中链接/包含测试。不仅如此

    • 缩小尺寸
    • 降低泄露信息的风险(例如测试夹具数据/详细信息)

    它还让您可以自由地添加您不想包含在已部署软件中的测试依赖项(模拟框架,例如 SQLite)

  4. 目的正是为了组织您的测试。假设您在多个翻译单元中进行了与“文本文件导入”相关的测试。

    特别是测试套件

    • 可以嵌套,
    • 就像命名空间一样(在多个翻译单元中打开相同的“套件”命名空间会合并该套件中的所有测试)
    • 可以有“全局”设置/拆卸和标签

关于c++ - 使用 C++ Boost.Test 组织单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50946354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com