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