色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

單元測(cè)試之道(使用NUnit)

  首先來(lái)看下面幾個(gè)場(chǎng)景你是否熟悉

  1、你正在開(kāi)發(fā)一個(gè)系統(tǒng),你不斷地編碼-編譯-調(diào)試-編碼-編譯-調(diào)試……終于,你負(fù)責(zé)的功能模塊從上到下全部完成且編譯通過(guò)!你長(zhǎng)出一口氣,懷著激動(dòng)而又忐忑的心情點(diǎn)擊界面上的按鈕,頓時(shí)你剛剛的輕松感煙消云散:系統(tǒng)無(wú)法正常工作,你想讀的數(shù)據(jù)顯示不出來(lái),你想存的東西也送不到數(shù)據(jù)庫(kù)……于是,你再次回到IDE里,設(shè)斷點(diǎn)、調(diào)試、一層一層跟蹤,當(dāng)你精疲力盡終于將數(shù)據(jù)送到數(shù)據(jù)庫(kù)里,你又發(fā)現(xiàn)了其它問(wèn)題,于是你繼續(xù)設(shè)斷點(diǎn)、調(diào)試、編譯、調(diào)試……

  2、你狂躁地敲擊著鍵盤和鼠標(biāo),咒罵著不斷出現(xiàn)的bug:啊?這里怎么沒(méi)返回值啊!哎?這里不該是0啊!不對(duì)啊,這里怎么沒(méi)數(shù)據(jù)……你永遠(yuǎn)不知道還有多少bug,你也永遠(yuǎn)不知道你的改動(dòng)會(huì)不會(huì)引入其它bug——這里有幾十個(gè)甚至上百個(gè)類,幾百幾千個(gè)方法!我不能都照顧到啊!你感覺(jué)bugs像敲擊鼴鼠游戲中的鼴鼠:打下了這個(gè),另一個(gè)又從其它洞口露出頭來(lái)……

  3、也許是畢業(yè)答辯的演示,也許是客戶的審查,你小心地打開(kāi)自己要演示的系統(tǒng),進(jìn)行著預(yù)定的操作,忽然,有個(gè)功能不能正常運(yùn)行,你大汗淋漓,在答辯老師或者客戶質(zhì)疑且不滿的目光下你試了又試,但還是于事無(wú)補(bǔ)……于是,答辯老師可能扭頭便走,客戶可能憤然離去,然后離去的還有你的學(xué)位證和項(xiàng)目獎(jiǎng)金。當(dāng)后來(lái)你檢查代碼時(shí),發(fā)現(xiàn)這一切竟然只是因?yàn)橐粋€(gè)底層工具類中一個(gè)方法輸出結(jié)果為空。

  如果你覺(jué)得上面的場(chǎng)景令你似曾相識(shí)甚至痛心疾首,那么你應(yīng)該看完這篇文章。

  什么是單元測(cè)試

      單元測(cè)試(Unit Test)的一個(gè)測(cè)試用例(Test Case)是一小段代碼,這段代碼用于測(cè)試一個(gè)小的程序功能(一般是一個(gè)方法或相關(guān)的幾個(gè)方法)行為是否正常。下面給出一個(gè)實(shí)際項(xiàng)目中單元測(cè)試用例的代碼,大家可以不用深究這段代碼中的細(xì)節(jié),這里貼這段代碼只是給大家一個(gè)直觀的感覺(jué)。

 1 /// 
2 /// 測(cè)試基本的添加及刪除角色是否正確
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 = "測(cè)試角色" + timeStamp,
16 Desciption = "此角色僅供測(cè)試使用",
17 };
18 roleServ.AddRole(newRole);
19
20 RoleDto addedRole = roleRep.GetRoleByName("測(cè)試角色" + timeStamp);
21 Assert.AreNotEqual(-1, addedRole.ID);//確認(rèn)新角色添加成功
22
23 roleServ.RemoveRole(addedRole.ID);
24 Assert.AreEqual(-1, roleRep.GetRoleByName("測(cè)試角色" + timeStamp).ID);//確認(rèn)剛才添加的角色刪除成功
25 }

NET技術(shù)單元測(cè)試之道(使用NUnit),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 满城县| 镇坪县| 商河县| 米脂县| 寿光市| 东乡族自治县| 潞西市| 永丰县| 龙门县| 红原县| 泰顺县| 泾阳县| 南澳县| 浑源县| 闻喜县| 邻水| 无极县| 旺苍县| 精河县| 武川县| 镶黄旗| 龙游县| 宜章县| 柳江县| 浏阳市| 屏南县| 新泰市| 鱼台县| 长沙县| 内黄县| 达日县| 扎赉特旗| 尼木县| 保靖县| 宁国市| 拉萨市| 霸州市| 普宁市| 新邵县| 会泽县| 青海省|