在几年没有全职使用 .NET 之后,重新接触一下 .NET,并想知道现在好的单元测试包是什么。

我熟悉 NUnit(几年前),并且曾短暂使用过 IronRuby,目标是让 rspec 之类的东西运行起来,但除此之外我就不知道了。

我意识到我可以在谷歌上搜索这个问题,然后就到此为止了,但我相信在这里提问我可能会得到更好、更明智的答复:-)

建议?

有帮助吗?

解决方案

有这么多,太疯狂了。我想,太棒了。

  • 对于保守派(我)来说, 单位 仍然可用并且仍然有能力。
  • 对于微软类型来说, MS测试 足够了,但与 Nunit 相比缓慢且笨重。它还缺乏代码覆盖率,无需花大钱购买昂贵的 Visual Studio 版本。
  • 还有 兆单位. 。它类似于 NUnit,但具有一些漂亮的功能,例如 RowTest(使用不同的参数运行相同的测试)和 Rollback(将数据库恢复到测试后发现的样子)
  • 最后, xUnit.net 是有态度的时尚选择。
  • 哦,还有 测试驱动.NET 将为您提供 Nunit 和 MBunit 的 IDE 集成。

我确信他们都很好。不过,我会避开 MSTest,除非您只是喜欢在一个开箱即用的 IDE 中拥有所有内容的便利。

斯科特·汉塞尔曼 有一个关于这个主题的播客。

其他提示

我们使用 NUnit 和 MB单元 这里。我们用 测试驱动.NET 从 Visual Studio 中运行单元测试。我们使用优秀的、强烈推荐的 犀牛模拟 作为一个模拟框架。

坚持使用 NUnit。不要靠近 MSTest。

NUnit + ReSharper 的使用绝对是一种乐趣。

我以前使用 NUnit,但现在倾向于使用 MbUnit,因为有两个关键功能:1.RowTest 功能允许您轻松地对不同的参数集运行相同的测试,如果您确实想要彻底覆盖,这一点非常重要。2.回滚功能允许您对数据库运行测试,同时在每次测试后回滚更改,使数据库每次都保持完全相同的状态。只需添加 [Rollback] 属性即可。

MbUnit 的另一个优点是它的语法几乎与 NUnit 相同,因此如果您在 NUnit 下已经有了完整的测试床,您只需切换引用即可,而无需更改任何(非常?)代码。

xUnit.net 看起来提供了一种稍微不同的 N/MB/MS/Unit 方法,这很有趣。

在我寻找类似 rspec 的解决方案时(因为我喜欢 rspec),我还遇到了 国家规范, ,看起来有点罗嗦,但是结合起来 NSpec 扩展 使用 C#3 扩展方法的插件,看起来很不错。

我使用以下内容:

测试驱动.NET - Visual Studio 的单元测试插件

类型模拟隔离器- .Net 单元测试的模拟框架

单位 - C# 语言的开源单元测试框架。

这是一个老问题,但您可能会发现有趣的是,Gallio v3.1 现在通过 IronRuby 支持 RSpec。

我喜欢 测试驱动.NET (尽管我使用 ReSharper)并且我很满意 XUnit.net. 。它使用事实而不是许多人不喜欢的测试,但我喜欢术语上的差异。考虑一系列有关您的软件的自动可证明的事实,并查看在进行更改时违反了哪些事实,这很有用。

意识到 Visual Studio 2008 Professional(及更高版本)现在带有集成的单元测试 (它过去仅适用于 Team System Edition)并且可能适合您的需求。

我制作了一个使用ironRuby 测试.net 库的小示例:http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx

我以前使用 NUnit,但后来改用 MbUnit,因为它有更多功能。我喜欢行测试。它可以让您参数化您的测试。不过,NUnit 确实有更好的工具支持。我正在使用 ReSharper 运行 MbUnit 测试。我在 TestDriven.NET 运行 MbUnit 的 SetUp 方法时遇到问题。

这确实是我的个人意见(我想这是多余的,因为它是一个论坛)。NUnit、MSTest 等都做几乎相同的事情。然而我发现NMock 不可或缺。

NMock 或任何模拟包都不是单元测试,但它使单元测试变得更加容易。

我喜欢 兆单位, ,呃, 加里奥. 。对我来说最重要的是 Visual Studio 内部拥有良好的工具支持。为此我使用 雷夏珀, ,其中有一个 MbUnit 测试运行程序. 。看来很多人都喜欢 测试驱动.NET 也作为他们的测试运行者。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top