|
首先來看下面幾個場景你是否熟悉
1、你正在開發一個系統,你不斷地編碼-編譯-調試-編碼-編譯-調試……終于,你負責的功能模塊從上到下全部完成且編譯通過!你長出一口氣,懷著激動而又忐忑的心情點擊界面上的按鈕,頓時你剛剛的輕松感煙消云散:系統無法正常工作,你想讀的數據顯示不出來,你想存的東西也送不到數據庫……于是,你再次回到IDE里,設斷點、調試、一層一層跟蹤,當你精疲力盡終于將數據送到數據庫里,你又發現了其它問題,于是你繼續設斷點、調試、編譯、調試……
2、你狂躁地敲擊著鍵盤和鼠標,咒罵著不斷出現的bug:啊?這里怎么沒返回值啊!哎?這里不該是0啊!不對啊,這里怎么沒數據……你永遠不知道還有多少bug,你也永遠不知道你的改動會不會引入其它bug——這里有幾十個甚至上百個類,幾百幾千個方法!我不能都照顧到啊!你感覺bugs像敲擊鼴鼠游戲中的鼴鼠:打下了這個,另一個又從其它洞口露出頭來……
3、也許是畢業答辯的演示,也許是客戶的審查,你小心地打開自己要演示的系統,進行著預定的操作,忽然,有個功能不能正常運行,你大汗淋漓,在答辯老師或者客戶質疑且不滿的目光下你試了又試,但還是于事無補……于是,答辯老師可能扭頭便走,客戶可能憤然離去,然后離去的還有你的學位證和項目獎金。當后來你檢查代碼時,發現這一切竟然只是因為一個底層工具類中一個方法輸出結果為空。
如果你覺得上面的場景令你似曾相識甚至痛心疾首,那么你應該看完這篇文章。
什么是單元測試
單元測試(Unit Test)的一個測試用例(Test Case)是一小段代碼,這段代碼用于測試一個小的程序功能(一般是一個方法或相關的幾個方法)行為是否正常。下面給出一個實際項目中單元測試用例的代碼,大家可以不用深究這段代碼中的細節,這里貼這段代碼只是給大家一個直觀的感覺。
1 ///
2 /// 測試基本的添加及刪除角色是否正確
3 ///
4 [Test]
5 public void TestAddAndRemoveRole()
6 {
7 IRoleServices roleServ = UnityHelper.CreateContainer().Resolve<IRoleServices>();
8 IRoleRepository roleRep = UnityHelper.CreateContainer().Resolve<IRoleRepository>();
9 Assert.IsNotNull(roleServ);
10 Assert.IsNotNull(roleRep);
11
12 String timeStamp = DateTime.Now.ToString();
13 RoleDto newRole = new RoleDto()
14 {
15 Name = "測試角色" + timeStamp,
16 Desciption = "此角色僅供測試使用",
17 };
18 roleServ.AddRole(newRole);
19
20 RoleDto addedRole = roleRep.GetRoleByName("測試角色" + timeStamp);
21 Assert.AreNotEqual(-1, addedRole.ID);//確認新角色添加成功
22
23 roleServ.RemoveRole(addedRole.ID);
24 Assert.AreEqual(-1, roleRep.GetRoleByName("測試角色" + timeStamp).ID);//確認剛才添加的角色刪除成功
25 }
NET技術:單元測試之道(使用NUnit),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。