我最近学习了很多关于 C++ 的 Mocking Frameworks 的知识,但有一个问题到目前为止我无法解决:
似乎有 2 种不同类型的模拟框架可用(至少对于 C++):
- 类型声明:像Google Mock这样的模拟框架需要通过 makros 手动定义每个模拟类
- Type Generic:像HippoMock这样的框架提供了一个基于模板的方法,该方法在运行时创建一个模拟对象
我看到通用框架更容易使用,开发人员不需要自己编写每个模拟对象。然而,有许多这样的声明式框架可用,尤其是谷歌人通常知道他们在做什么。我问为什么存在这些框架,以及它们相对于通用框架的主要优势是什么。