在VS 2012中远离Pex和Moles?

Gor*_*don 5 pex mocking moles visual-studio-2012

在测试方面,我已经支持它了.我现在是一个巨大的粉丝,经常做像TDD这样的事情.在VS 2010的设计和回归中,我刚刚使用了MSTEST.这很棒 - 我的所有项目都是开源的,无论如何都与我的工作有关(物理研究@大学).然后我进入了Pex,它帮助了很多我找不到的各种边缘情况.总的来说,这是我编码方式的一次革命.这就把我介绍给了Moles.也很酷(但我还在学习).

不幸的是,我只能访问VS的Pro版本(这是我的大学作为站点许可证获得的).结果是Moles不再起作用,而且升级,Fakes也不会.而且我认为Pex的下一个版本将依赖于Fakes,使其成为终极唯一的选择.

所以,我发现自己现在正在寻找具有类似功能的开源工具.是否有某篇文章或资源比较了一些比较成熟的OSS项目?我发现自己有点亏本(即选择太多).虽然我喜欢这种嘲讽能力,但它是一种工具,而不是我想用我的业余时间(这是我的大部分.NET编程发生的地方).

我认为如果不花真钱就不可能取代Pex.

虽然我在这,但似乎我应该看看是否有其他测试框架比MSTEST更好.MSTEST非常好,但开始感觉有点受限(我没有探索VS2012中的任何新功能,如果有的话).

非常感谢你的帮助,提前,真的,通常我会尝试提出一个更具体的问题,但我在这里有点海上.

MiF*_*vil 5

  1. 即使您通常在VS 2012中工作,也可以通过在VS 2010中打开解决方案继续使用PEX生成测试.VS 2010和VS 2012之间的VS项目架构非常兼容.您还可以考虑运行命令来自2010年加载项的PEX.请参阅  /sf/answers/476676861/

  2. PEX应该与其他模拟框架一起工作,不仅限于Moles或Fakes,例如,请参阅将Pex与MoQ集成

  3. VS Premium现在可以使用假货 - 请参阅  http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2919309-provide-microsoft-fakes-with-all-visual-studio-edi

  4. 我们的团队从各种各样的模拟框架中选择了NSubstitute,我们对它非常满意. 

  5. 我也不知道用于在.NET中生成测试的PEX的替代方案.然而,看看AutoFixture,  两个项目都专注于自动生成测试输入   "通过使用AutoFixture for TDD,然后使用Pex进行QA,使用AutoFixture和Pex的组合是有意义的."


Ale*_*eck 4

我不知道在 .NET 中测试 PEX 的替代方案。

Fakes 框架有很多替代方案,例如MoqRhino Mocks。请参阅此处了解更完整的列表。就我个人而言,我使用 Moq 是因为我喜欢流畅的 API,并且它支持经典和模拟风格的测试。

Fakes 框架还包括为单元测试不友好的类型(例如密封类型或静态方法)生成填充程序的能力。TypeMock Isolator可能是唯一的替代方案,但它不是免费的。如果失败,您可以编写自己的测试友好包装器,或使用某种形式的鸭子类型

Visual Studio 2012 有一个用于测试运行器的插件架构,Peter Provst在此处维护了一个插件列表。我认为 VS 2012 现在使用vstestconsole而不是 MSTest,感觉 2012 年运行单元测试比 2010 年快很多。NUnit 对参数化测试的支持比 MSTest 更好。