7

谈到测试,我已经支持它。我现在是一个超级粉丝,并且经常做 TDD 之类的事情。在 VS 2010 的设计和回归中,我刚刚使用了 MSTEST。这很棒——我的所有项目都是开源的,并且无论如何都与我的工作相关(物理研究@大学)。然后我进入了 Pex,它帮助我找到了我没有寻找的各种边缘情况。总的来说,这是我编码方式的一场革命。这让我认识了 Moles。也很酷(但我还在学习)。

不幸的是,我只能访问专业版的 VS(这是我的大学作为站点许可证获得的)。结果是 Moles 不再起作用,而升级版 Fakes 也不起作用。而且我会想象 Pex 的下一个版本将依赖于 Fakes,使其成为 Ultimate-only 选项。

因此,我发现自己现在正在寻找具有类似功能的开源工具。是否有文章或资源比较了一些更成熟的 OSS 项目?我发现自己有点不知所措(即选择太多)。虽然我喜欢这种模拟能力,但它是一个工具,而不是我想在业余时间玩的东西(这是我的大部分 .NET 编程发生的地方)。

我认为如果不花真钱,Pex 将无法替代。

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

非常感谢您提前提供的帮助,实际上,通常我会尝试提出更具体的问题,但我在这里有点不知所措。

4

2 回答 2

5
  1. 即使您通常在 VS 2012 中工作,您也可以通过在 VS 2010 中打开解决方案来继续使用 PEX 生成测试。VS 项目架构在 VS 2010 和 VS 2012 之间非常兼容。您也可以考虑运行命令线 PEX 从 2010 加载项。请参阅  https://stackoverflow.com/a/6809669

  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 用于 TDD,然后将 Pex 用于 QA,将 AutoFixture 和 Pex 结合使用是有意义的。”

于 2013-06-15T07:31:36.563 回答
4

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

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

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

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

于 2012-11-24T20:34:58.900 回答