我正在为一个大型 C++ 项目寻找一个模拟框架。我暂时选择了 GoogleTest 作为测试框架,所以我首先查看了 GoogleMocks。然而,后来我发现了 TypeMock 的 Isolator++,它有两个我非常喜欢的特性:
- 它可以模拟任何东西。
- 它允许您在不更改遗留代码的情况下添加测试覆盖率(使用方法调用拦截和其他一些魔法)。无需拼接接口即可添加测试。
缺点是 Isolator++ 是商业产品。我担心供应商锁定等。是否有其他具有相同功能的框架?也许是开源的?
让我也排除我在其他帖子中观察到的一个常见批评:“TypeMock 鼓励糟糕的设计。你应该改进你的设计,而不是使用支持坏习惯的工具。” (我的解释)
我的回答是:我确实想改进设计。我还想在重构之前添加测试覆盖率。为此,以零代码更改添加测试的能力非常有吸引力。