0
对于单元/集成测试与内置MsTest选择NUnit有没有什么优势?女士测试或NUnit?
对于单元/集成测试与内置MsTest选择NUnit有没有什么优势?女士测试或NUnit?
它们非常相似。差异很微妙。
你可以写
[TestCase(1, "one)]
[TestCase(2, "two)]
[TestCase(3, "three)]
[TestCase(4, "four)]
public void CanTranslate(int number, string expectedTranslation)
{
var translation = _sut.Translate(number);
translation.Should().Be.EqualTo(expectedTranslation);
}
,而不是写4个测试或使用测试内部的循环。未通过测试的错误信息会更加清晰,并且测试结果总是可以方便地分组。
例如
[Test, Combinatorial]
public void MyTest([Values(1,2,3)] int x, [Values("A","B")] string s)
{
...
}
这相当于运行测试
MyTest(1, "A")
MyTest(1, "B")
MyTest(2, "A")
MyTest(2, "B")
MyTest(3, "A")
MyTest(3, "B")
(见原页here)
MSTest的总是实例化的新实例每个测试方法的测试类d正在执行。这非常有用,因为在每次单独测试之前,将运行Setup和TearDown方法,并重置每个实例变量。随着NUnit的,你要照顾最终测试之间共享实例变量的(尽管这不应该是一个问题之二:一个精心设计的测试应该通过设计来隔离)
MSTest与Visual Studio很好地集成。你需要一个第三方插件来有效地与NUnit的工作,例如ReSharper的,Test Driven .NET或NCrunch
NUnit的断言有一个流畅的版本,所以你可以写
例如
Assert.That(result).Is.GreaterThan(9)
而不是
Assert.Greater(9, result);
随着SharpTestEx你甚至可以这样写:
result.Should().Be.GreaterThan(9);
,并采取强类型的IntelliSense的优势。
[NUnit和Microsoft的单元测试框架(VS 2008)有真正的区别吗?](http:// stackoverflow。com/questions/2422238/are-real-differences-between-nunit-and-microsofts-unit-testing-framework) – JohnFx 2010-05-26 23:24:14
还有一个类似的问题[here](http://stackoverflow.com/questions/2422238/ -nhere-real-differences-between-nunit-and-microsofts-unit-testing-framework/2422339#2422339),其中我给出了Roy Osherove的一篇博客文章的链接,突出了它们之间的差异。 – Paddyslacker 2010-05-25 00:26:59