【发布时间】:2013-04-22 03:32:36
【问题描述】:
我最近学习了很多关于 C++ 模拟框架的知识,但有一个问题我至今无法解决:
似乎有 2 种不同类型的模拟框架可用(至少对于 C++):
- 声明式类型:像Google Mock 这样的模拟框架需要通过 makros 手动定义每个模拟类
- Type Generic: 像 HippoMock 这样的框架提供了一个基于模板的方法,可以在运行时创建一个模拟对象
我看到通用框架更容易使用,开发人员不需要自己编写每个模拟对象。然而,有许多这样的声明式框架可用,尤其是 Google 员工通常知道他们在做什么。我问为什么这些框架存在,它们相对于通用框架的主要优势是什么。
【问题讨论】:
-
我从来没有使用过 HippoMock 或类似的东西,但我喜欢我可以按照我需要的方式为 GoogleMock 设计模拟类的方式。如果我只需要简单的模拟类,那么声明它们的必要开销对于获得恕我直言来说并不太难。
-
另一点:可以例如HippoMock 正确处理模板类?
-
可能是“声明性”而不是“重写”是一个更好的术语,无论如何“通用”都很好......
-
听起来不错,我来编辑一下
标签: c++ unit-testing testing mocking