2.10 [Category("NameOfCategory")]屬性
這個(gè)屬性也很好。但是在TestDriven中無法使用。它表明我們可以把某些測(cè)試歸成一類(Category),我們可以給這個(gè)類別取個(gè)名字,然后可以指定是否對(duì)這個(gè)類別進(jìn)行測(cè)試。假設(shè)你有個(gè)函數(shù)需要運(yùn)行很長(zhǎng)的時(shí)間,你肯定不希望每次都去運(yùn)行它。那么你可以把它歸到某個(gè)類別中,然后在NUnit的GUI中將它排除在測(cè)試范圍之外。
[Test]
[Category("Long")]
// 這個(gè)測(cè)試方法屬于名字為L(zhǎng)ong的類別,我們可以在NUnit的GUI中選擇是否需要運(yùn)行這一類別的測(cè)試方法,但是TestDriven.net無法使用這個(gè)屬性。
public void VeryLongTest()
{
Assert.AreEqual( "This test will consum a very long time", "No, It will be completed in 0.1 seconds");
}
2.11 [Explicit]屬性
這個(gè)屬性和Ignore有相似之處,但是也有不同。如果指定了這個(gè)屬性,那么在測(cè)試的時(shí)候是不會(huì)運(yùn)行的。但是如果你指定了它(比如你把鼠標(biāo)放在這個(gè)方法上,然后選擇RunTest)這個(gè)測(cè)試方法會(huì)運(yùn)行。它也非常有用處,對(duì)于某些你想暫時(shí)避過的測(cè)試,它是一個(gè)好的選擇。
[Test, Explicit]
public void ExplicitTest()
{
Assert.AreEqual(1, 2); // 這個(gè)測(cè)試方法會(huì)自動(dòng)地被忽略掉,除非我們?cè)贜Unit的GUI中手動(dòng)選擇它或者把鼠標(biāo)放在它上面,再運(yùn)行TestDriven.net, 它才會(huì)被執(zhí)行
}
3、總結(jié)
其實(shí)NUnit的實(shí)際功能比我上面列舉的強(qiáng)大得多。但是對(duì)于程序員自己?jiǎn)卧獪y(cè)試來說,了解一些常用的屬性已經(jīng)足夠。TestDriven支持大部分屬性,使用起來也非常的方便。而且TestDriven還能提供NCover這個(gè)分析的利器。你大可以為自己的應(yīng)用程序創(chuàng)建一個(gè)工程,同時(shí)還為自己的測(cè)試代碼創(chuàng)建一個(gè)工程,測(cè)試和開發(fā)同步進(jìn)行。良好的單元測(cè)試一定可以提高程序的質(zhì)量,同時(shí)也未必會(huì)耽誤太多時(shí)間,延緩項(xiàng)目的進(jìn)度。單元測(cè)試是如此的簡(jiǎn)單,也是如此的有用。希望上面的這些屬性對(duì)大家有所幫助,能夠提高大家的程序水平。