【问题标题】:C++ Mock Frameworks: 'Generic' vs 'Declarative'C++ 模拟框架:“通用”与“声明性”
【发布时间】:2013-04-22 03:32:36
【问题描述】:

我最近学习了很多关于 C++ 模拟框架的知识,但有一个问题我至今无法解决:

似乎有 2 种不同类型的模拟框架可用(至少对于 C++):

  • 声明式类型:Google Mock 这样的模拟框架需要通过 makros 手动定义每个模拟类
  • Type Generic:HippoMock 这样的框架提供了一个基于模板的方法,可以在运行时创建一个模拟对象

我看到通用框架更容易使用,开发人员不需要自己编写每个模拟对象。然而,有许多这样的声明式框架可用,尤其是 Google 员工通常知道他们在做什么。我问为什么这些框架存在,它们相对于通用框架的主要优势是什么。

【问题讨论】:

  • 我从来没有使用过 HippoMock 或类似的东西,但我喜欢我可以按照我需要的方式为 GoogleMock 设计模拟类的方式。如果我只需要简单的模拟类,那么声明它们的必要开销对于获得恕我直言来说并不太难。
  • 另一点:可以例如HippoMock 正确处理模板类?
  • 可能是“声明性”而不是“重写”是一个更好的术语,无论如何“通用”都很好......
  • 听起来不错,我来编辑一下

标签: c++ unit-testing testing mocking


【解决方案1】:

我相信模拟类的“声明性”框架在以下几点上是有意义的,例如 gmock 的代祷是:

  • 不依赖任何操作系统(我一直在使用 FreeRTOS 实现工作版本)
  • 模拟方法处理程序的细粒度控制
  • 对预期方法调用结果的细粒度控制

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多