【发布时间】:2010-09-05 07:56:24
【问题描述】:
在几年没有全职使用 .NET 之后,我正在重新开始使用它,并且想知道这些天好的单元测试包是什么。
我对 NUnit 很熟悉(几年前),并且曾短暂地使用过 IronRuby,目标是让 RSpec 之类的东西继续运行,但除此之外我知道的不多。
我意识到我可以为此在谷歌上搜索并收工,但我相信在这里提出问题可能会得到更好、更明智的回应 :-)
建议?
【问题讨论】:
标签: c# .net unit-testing testing
在几年没有全职使用 .NET 之后,我正在重新开始使用它,并且想知道这些天好的单元测试包是什么。
我对 NUnit 很熟悉(几年前),并且曾短暂地使用过 IronRuby,目标是让 RSpec 之类的东西继续运行,但除此之外我知道的不多。
我意识到我可以为此在谷歌上搜索并收工,但我相信在这里提出问题可能会得到更好、更明智的回应 :-)
建议?
【问题讨论】:
标签: c# .net unit-testing testing
有太多太疯狂了。我猜是疯了。
我相信他们都很好。不过,我会避开 MSTest,除非您只是享受在一个开箱即用的 IDE 中拥有一切的便利。
Scott Hanselman 有一个关于这个主题的播客。
【讨论】:
坚持使用 NUnit。不要去 MSTest 附近的任何地方。
使用 NUnit + ReSharper 绝对是一种乐趣。
【讨论】:
我们在这里使用 NUnit 和 MbUnit。我们使用 TestDriven.NET 在 Visual Studio 中运行单元测试。我们使用优秀的、强烈推荐的 RhinoMocks 作为模拟框架。
【讨论】:
我以前使用 NUnit,但现在倾向于使用 MbUnit,主要有两个特点: 1. RowTest 功能允许您轻松地对不同的参数集运行相同的测试,如果您真的想要全面覆盖,这一点很重要。 2. 回滚功能允许您对数据库运行测试,同时在每次测试后回滚更改,使您的数据库每次都保持完全相同的状态。而且就像添加 [Rollback] 属性一样简单。
MbUnit 的另一个优点是它的语法几乎与 NUnit 相同,因此如果您在 NUnit 下已经有一个完整的测试平台,您可以直接切换引用而不需要更改任何(非常?)代码。
【讨论】:
xUnit.net 看起来它为 NUnit、MbUnit 和 MSTest 提供了一种稍微不同的方法,这很有趣。
在寻找类似 RSpec 的解决方案时(因为我喜欢 RSpec),我还遇到了 NSpec,它看起来有点罗嗦,但结合了 NSpec Extensions 插件使用 C# 3 扩展方法,看起来很不错。
【讨论】:
我使用以下:
TestDriven.NET - Visual Studio 的单元测试插件
Typemock Isolator- .NET 单元测试的模拟框架
NUnit - C# 中的开源单元测试框架。
【讨论】:
我喜欢 TestDriven.NET(即使我使用 ReSharper),我对 XUnit.net 非常满意。它使用事实而不是许多人不喜欢的测试,但我喜欢术语上的差异。考虑一组关于您的软件的可自动证明的事实并查看您在进行更改时违反了哪些事实是很有用的。
请注意Visual Studio 2008 Professional (and above) now comes with integrated Unit Testing(它曾经仅在 Team System 版本中可用)并且可能适合您的需求。
【讨论】:
我曾经使用过 NUnit,但由于它具有更多功能,所以我切换到 MbUnit。
我喜欢 RowTest。它可以让你参数化你的测试。 NUnit 确实有更好的工具支持。我正在使用 ReSharper 运行 MbUnit 测试。我在为 MbUnit 运行我的 SetUp 方法时遇到了 TestDriven.NET 的问题。
【讨论】:
NUnit、MSTest 等都做几乎相同的事情。但是,我发现 NMock 不可或缺。
NMock 或任何模拟包都不是单元测试,但它使进行单元测试变得非常容易,甚至可以。
【讨论】:
我喜欢MbUnit,呃,Gallio。对我来说最重要的是在 Visual Studio 中有良好的工具支持。为此,我使用Resharper,它有一个MbUnit test runner。很多人似乎也喜欢TestDriven.NET 作为他们的测试运行者。
【讨论】: