啊,總算變成美麗的綠色了,大家現(xiàn)在體會(huì)到環(huán)保的重要性了吧。 :)
那么可以交任務(wù)了嗎?等等,別急,還有個(gè)異常沒(méi)測(cè)試呢,如果我們的Amount小于0的話,會(huì)產(chǎn)生異常,那么,異常怎么測(cè)試呢?請(qǐng)接著看。
--------------------------------------------------------------------------------
測(cè)試異常:
還是跟上面一樣,先寫出測(cè)試代碼:
[Test]
[ExpectedException(typeof(Exception))]
public void ExcpetionTesting()
{
Ticket ticket = new Ticket();
ticket.Add(3);
ticket.Sell();
ticket.Sell();
ticket.Sell();
ticket.Sell();
}
其中,[ExpectedException(typeof(Exception))]表示我們希望能捕獲到發(fā)生的異常,如果沒(méi)有捕獲到異常,則表示測(cè)試失敗。
后面的代碼很好理解,我們加了三張票,卻賣了四張出去,這可不是炒股,以后沒(méi)辦法平倉(cāng)的。 :)
編譯運(yùn)行,我們看到以下的測(cè)試畫面:
在Ticket類中,我們修改一下Sell方法,讓它變成:
public void Sell()
{
if(amount - 1 < 0)
throw new Exception("Amount不能為0");
amount -= 1;
}
編譯,再測(cè)試,結(jié)果如下:
好了,到了這里算完成我們的單元測(cè)試之旅了,大家對(duì)如何在C#中進(jìn)行單元測(cè)試一定已經(jīng)有了一個(gè)基本的認(rèn)識(shí)。另外,NUnit并不是只針對(duì)C#,事實(shí)上,你可以在任何.Net語(yǔ)言中使用NUnit來(lái)測(cè)試你的單元,方法都一樣。
--------------------------------------------------------------------------------
總結(jié):
單元測(cè)試看上去雖然有點(diǎn)麻煩,但是它為程序員提供了一個(gè)安全的觀點(diǎn),讓程序員對(duì)自己的程序更加有信心,在減少開(kāi)發(fā)后期進(jìn)行頻繁Debug所耗費(fèi)時(shí)間的同時(shí)也為應(yīng)用軟件提供了第一道安全防護(hù)網(wǎng),因此,單元測(cè)試是提高開(kāi)發(fā)效率和軟件品質(zhì)的一個(gè)重要的手段。
利用UNint,我們可以在.Net編程過(guò)程中非常方便的進(jìn)行單元測(cè)試,它圖形化的界面和簡(jiǎn)單而強(qiáng)大的測(cè)試框架為我們提供了一個(gè)非常舒適而有趣的測(cè)試環(huán)境,能夠讓程序員覺(jué)得進(jìn)行單元測(cè)試并不枯燥乏味,習(xí)慣后甚至還能成為一種樂(lè)趣。
看完本文,如果你是引言中那個(gè)可憐的程序員的話,你現(xiàn)在一定能輕松的面對(duì)你的項(xiàng)目經(jīng)理,交上一份令人放心的代碼答卷。