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