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