在做事務的過程中,接觸了單元測試,利用Nunit對自己寫的方法進行單元測試,可以提高自己提交的代碼的質(zhì)量。在這次實踐的過程中讓我感受到了單元測試的重要性,由于接觸單元測試的時間還很短,了解的東西還是很膚淺,先進行總結,以后繼續(xù)加深理解并應用。
1. 首先,在編寫測試類之前,必須為項目添加指向nunit.framework.dll的引用,否則無法找到命名空間。步驟為:在資源瀏覽器中右擊引用,然后選擇添加引用NUnit.framework組件,在添加引用對話框中按選擇和確認按鈕。接著創(chuàng)建一個測試類,并在測試類中寫測試函數(shù)。測試類前面加上 [TestFixture],測試函數(shù)前面加上[Test],只有用這兩個記號標記的類和方法才能顯示在NUnit的任務列表中。NUnit提供了一組豐富的斷言,這些斷言作為Assert類的靜態(tài)方法,也可以調(diào)用自己要測試的函數(shù),如:
Assert.AreEqual(”寶貝id不能為空”, auctionMan.modifyTimeByAuctionId(null, DateTime.Parse(”2009-2-11 10:37:05″)));
Assert.AreEqual(”寶貝id不能為空”, auctionMan.modifyTimeByAuctionId(”", DateTime.Parse(”2009-2-11 10:37:05″)));
Assert.AreEqual(”寶貝id不是位”, auctionMan.modifyTimeByAuctionId(”d56d46d654d6″, DateTime.Parse(”2009-2-11 10:37:05″)));
auctionMan.modifyTimeByAuctionId(”f6f469edf3663eba41ca9bb60a9476″, DateTime.Parse(”2009-2-11 10:37:05″));
auctionMan.modifyTimeByAuctionId(”88ee0cbc1db1390c0f35e1a549a76862″,”");
auctionMan.modifyTimeByAuctionId(”88ee0cbc1db1390c0f35e1a549a76862″, “2009-1-10 16:37:05″);
2.其次啟動外部調(diào)試工具為Nunit,然后啟動調(diào)試,點擊運行后,如圖所示:
3.單元測試出問題后,要進行調(diào)試,排除bug。我們在測試函數(shù)中調(diào)用待測試的函數(shù),有些是測試正常流的,有些是測試異常流的,正常流的測試應該是運行通過的,異常流的測試是拋異常的。但是如果正常流拋出異常,應該進行定位,找出是代碼哪里出錯,這時可以設置斷點進行跟蹤,當運行到斷點后,進行逐條代碼的運行,可以找出運行到哪一行代碼,Nunit會報錯,同時可以把鼠標放在變量上方,查看程序運行時,變量內(nèi)存的值,從而跟蹤程序運行是否正確,如圖: