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