.NET单元测试包?

Ori*_*rds 62 .net c# testing unit-testing

在几年没有全天候使用它之后再回到.NET,并想知道现在好的单元测试包是什么.

我对NUnit很熟悉(几年前),并且曾经与IronRuby进行过简短的比赛,其目标是获得像rspec这样的东西,但除此之外我不知道.

我知道我可以谷歌这个并称之为一天,但我相信我可能会在这里问一个问题得到一个更好,更明智的回应:-)

建议?

Bra*_*row 53

它有很多疯狂的东西.我觉得很疯狂.

  • 对于保守类型(我),NUnit仍然可用,而且还能胜任.
  • 对于Microsoft类型,MSTest足够,但与Nunit相比,速度慢且笨重.它还缺乏代码覆盖率而无需为昂贵的Visual Studio版本支付大笔费用.
  • 还有MbUnit.它就像NUnit,但有一些漂亮的功能,比如RowTest(用不同的参数运行相同的测试)和Rollback(把数据库放回去,就像你在测试后找到它一样)
  • 最后,xUnit.net是一个有一些态度的时尚选择.
  • 哦,TestDriven.NET将为您提供Nunit和MBunit的IDE集成.

我相信他们一切都很好.我会离开MSTest,除非你只是享受在一个IDE中开箱即用的便利.

Scott Hanselman有一个关于这个主题的播客.

  • +1,注意NUnit 2.5具有很好的RowTest功能,还有参数的组合测试等. (5认同)

Jud*_*ngo 8

我们在这里使用NUnit和MBUnit.我们使用TestDriven.NET从Visual Studio中运行单元测试.我们使用优秀的,强烈推荐的RhinoMocks作为模拟框架.


Iai*_*der 8

坚持NUnit.不要去MSTest附近的任何地方.

NUnit + ReSharper是一个非常愉快的工作.


Ori*_*rds 6

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

在我寻找一个RSpec样的解决方案(因为我爱RSpec的),我也碰到NSpec,这看起来有点罗嗦,但随着合并NSpec扩展插件使用C#3扩展方法,它看起来相当不错.


Dou*_*g R 6

我曾经使用NUnit,但现在倾向于使用MbUnit,有两个关键特性:1.RowTest功能允许您轻松地在不同的参数集上运行相同的测试,这对于您真正需要彻底覆盖非常重要.2.回滚功能允许您在每次测试后回滚更改时对数据库运行测试,每次都使数据库保持完全相同的状态.它就像添加[Rollback]属性一样简单.

MbUnit的另一个不错的方面是它的语法与NUnit几乎完全相同,所以如果你在NUnit下已经有一个完整的测试床,你可以直接切换引用,而无需更改任何(非常多?)代码.


小智 5

我使用以下内容:

TestDriven.NET - 为Visual Studio添加单元测试

Typemock Isolator - .Net单元测试的模拟框架

NUnit - C#中的开源单元测试框架.