最佳测试结构

时间:2015-02-12 23:23:18

标签: unit-testing testing googletest

我想到了关于测试结构的两种方法:
第一个选项

  • 单元测试
    • 特征1
    • 特征2
  • IntegrationTest
    • 特征1
    • 特征2
    • 等 ...

第二个选项:

  • 功能1
  • 功能2
  • cmakeUnitT
  • cmakeIntegration


第三种选择?
我喜欢第一个,因为我们对每个测试进行了很好的划分,但在第二个测试中我们将每个测试都用于所有测试。它有什么优势吗?有更好的组织测试方法吗? (c ++,gtest和mocks无处不在)

2 个答案:

答案 0 :(得分:1)

我更喜欢第二种选择。从测试覆盖的角度来看,最好能够看到涵盖特定功能的所有测试。从开发的角度来看,我还希望将所有测试结合在一起,以便快速评估我们需要添加的内容。从回归测试的角度来看,仅针对已更新的功能轻松启动测试。

答案 1 :(得分:1)

我会选择第一个选项。虽然它拆分了相同功能的测试,但它可以让您更轻松地从IDE运行所有单元测试 - 您只需选择所有单元测试的顶级文件夹或特定功能的单元测试,然后运行所有单元测试。然后你可以用一个快捷方式重新启动它们。重新启动单元测试是编程过程中最重要和最常见的事情之一。为什么它在集成测试中没有那么好用呢?因为它们速度较慢,而且通常需要额外的设置

所以虽然第二种选择更干净和正统,但第一种选择更简单实用

如果你有太多的功能x'文件夹/文件然后你总是可以引入另一个级别,如

  • 单元测试
    • 组件1
      • feature 1
      • feature 2