Microsoft Fakes和.Net 4.0

Microsoft Fakes和.Net 4.0,.net,moles,microsoft-fakes,.net,Moles,Microsoft Fakes,我们一直在研究如何使用新版本来帮助我们提高在.NET4.0框架下运行的一些遗留代码的测试覆盖率。不幸的是,我们似乎无法升级到.NET4.5。我说我们不能在.net 4.0(和VS2012)中使用Fakes框架,我们需要使用现在不受支持的Moles框架,这是正确的吗?我知道这不是你所问的,但你考虑过/评估过非microsoft模拟框架吗 令人难以置信的受欢迎和强大,是。它的文档并没有那么丰富,但它非常直观且易于使用。虽然我一般不喜欢moles,但我理解moles在测试遗留代码方面的帮助。下面是你可

我们一直在研究如何使用新版本来帮助我们提高在.NET4.0框架下运行的一些遗留代码的测试覆盖率。不幸的是,我们似乎无法升级到.NET4.5。我说我们不能在.net 4.0(和VS2012)中使用Fakes框架,我们需要使用现在不受支持的Moles框架,这是正确的吗?

我知道这不是你所问的,但你考虑过/评估过非microsoft模拟框架吗


令人难以置信的受欢迎和强大,是。它的文档并没有那么丰富,但它非常直观且易于使用。

虽然我一般不喜欢moles,但我理解moles在测试遗留代码方面的帮助。下面是你可以考虑的其他工具。但说真的,我讨厌这些类型的框架,因为正确的方法是编写可测试的代码,重构不可测试的遗留代码(我知道这并不总是容易或可能的)。我认为moles消除了单元测试的一个主要好处,即它迫使您编写良好的代码,如本文所述:

这里有几件事需要考虑:

  • (预装配MS Fakes框架)
  • (比TypeMock便宜,但仍然昂贵)
  • (贵得离谱!)

还有一个免费的、轻量级的JustMock版本,不知道它包括什么。

我正在用赝品测试3.5程序集,它自己编写的赝品测试是为4.5编写的。我没有尝试为3.5版编译它们,但不打算在部署计算机上运行。

Microsoft Fakes framework支持与Visual Studio 2012本身相同的.NET版本。这包括版本4.5、4.0、3.5、3.0和2.0

您应该使用Visual Studio 2012 Ultimate或Premium Update 2来使用Microsoft Fakes,并且单元测试可以针对.NET framework的早期版本。

由于我们处理的是遗留代码,我们的大多数依赖项都没有被很好地抽象,无法将模拟作为一种选项(我们使用的是Moq)所以我们需要Moles/Fakes的迂回功能。谢谢Jim。我们非常清楚,这些工具是最后的手段,任何从头开始编写的代码都将在设计时考虑到测试,并正确管理依赖关系。不过,对我们来说,重构整个代码库是不现实的,这就是为什么我们要研究这些类型的隔离框架。