1

我正在为一个大型 C++ 项目寻找一个模拟框架。我暂时选择了 GoogleTest 作为测试框架,所以我首先查看了 GoogleMocks。然而,后来我发现了 TypeMock 的 Isolator++,它有两个我非常喜欢的特性:

  1. 它可以模拟任何东西。
  2. 它允许您在不更改遗留代码的情况下添加测试覆盖率(使用方法调用拦截和其他一些魔法)。无需拼接接口即可添加测试。

缺点是 Isolator++ 是商业产品。我担心供应商锁定等。是否有其他具有相同功能的框架?也许是开源的?


让我也排除我在其他帖子中观察到的一个常见批评:“TypeMock 鼓励糟糕的设计。你应该改进你的设计,而不是使用支持坏习惯的工具。” (我的解释)

我的回答是:我确实想改进设计。我还想在重构之前添加测试覆盖率。为此,以零代码更改添加测试的能力非常有吸引力。

4

1 回答 1

3

好吧,我想这篇文章的标题也可以是:“TypeMock Isolator++ 有没有竞争对手”?据我所知,答案是否定的。

对于 C# 代码,TypeMock Isolator 确实有几个竞争对手:Telerik JustMock 和 Microsoft Fakes。但是对于 C++,TypeMock Isolator++ 是我发现的唯一一个。

对于处于这种情况的任何人,我还建议阅读 Michael Feather 的书“有效地使用旧代码”。它提供了许多实用技巧,让您无需像 Isolator 那样模拟活动对象即可进行测试。也就是说,在我看来,在某些情况下,必要的更改实在是太具有侵略性了。他们在进行测试时引入了太多的风险。所以,也许 Isolator++ 可能物有所值。走着瞧...

于 2014-09-11T15:21:47.687 回答