精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

VSTS2005單元測試功能的全自動化

開發 后端 自動化
本文對VSTS2005的單元測試進行了介紹,并提供了實施步驟。VS2005的單元測試真正實現了全自動化單元測試,大大提高了實際開發效率。

Team版的VS2005里面包含了完整的Test功能,具體有:Unit Test,WebTest和LoadTest.這一整套的測試基本涵蓋了軟件開發會使用到的測試功能.

VSTS2005單元測試介紹

我這里先從單元測試開始介紹(Unit Test).說起單元測試,很多使用.net進行開發的人員也許馬上就想起了NUnit,實際上它是個很好的工具,在VS2005出來之前,我也一直使用.不過現在VS2005已經提供了與NUnit一樣,甚至還要強大的功能,我們又有什么理由不使用呢?

OK,進入正題.首先我們要解決一個問題,為什么我們需要做單元測試?這個問題,對有經驗的老程序員來說,并不算是問題.一個軟件在開發的過程中,倘若不是非常微型的軟件,那么我們通常會劃分出若干個功能模塊來,然后一個模塊一個模塊的進行開發.每個子模塊完成后,我們并不知道它是否能正常的運行,尤其是當這個模塊只是個中間件類似的代碼塊,那么我們為了減少之后可能出現的問題和debug的難度(可以想象,如果在整合時期進行測試或者是甚至還有其他的模塊需要依賴該模塊才能進行開發的時候,盡早的測試將會是非常的重要),我們常常會對這單個模塊進行測試,比如寫段小程序,人為的寫入幾個參數來調用組件等.不用懷疑了,這就是單元測試.我相信,大部分的程序員都做過這樣的工作,而且也許還有許多程序員就如我上面所說的,單獨寫段小程序來進行單元測試(我自己以前也是如此),現在我們需要認真考慮下下一個問題了:如何進行高效的,高可靠的,甚至自動化的單元測試?

VSTS里的Unit Test可以幫助我們實現我們希望的絕大多數功能.我們從實際的項目開發入手來介紹.假設我們新建了一個.net項目,嗯,這是一個有關緩存的子項目,名字叫MyCache.我們很認真的設計了項目的架鉤,進行了可行性分析,接口和抽象的建立,具體對象的建立,關系建立,最后編碼完成了.項目經理叫我們不要高興的太早,他要求我們必須對這個項目進行可靠的單元測試,因為這個子項目非常重要,將會被許多項目引用.盡管我們很有信心,但是沒有辦法,我們依然需要進行單元測試.我們使用了Visual Studio Team System開發了這個項目,于是我們理所當然的使用自帶的Unit Test工具進行單元測試.

VSTS2005單元測試實現步驟

Step1.我們需要建立項目文件與測試文件的映射關系.
難道要我們去手動創建嗎?這可是整個項目啊,里面也許包含了幾十個類,數百個方法…當然沒那么復雜!實際上,我們需要做的工作很少,只是動動鼠標,等幾秒就可以了:)
在VS2005的IDE環境下,選擇menu里的Test,繼續選New Test項,這時將跳出個窗體,里面可以選擇測試項目類型,這里我們選擇Unit Test Wizard,確定,輸入測試項目名,然后將又出現一個窗體,里面包含你當前的solution里的所有project,我們選上我們的MyCache, 確定.OK,看見一個進度條,這是在執行測試代碼的映射工作,等結束后,你就會發現,已經建立了一個測試項目了,里面的文件完全對應你的目標項目,每個類包含的方法也是與目標類的方法一一對應,非常簡單,cool,mission complete!

Step2.運行我們的測試項目.
接下來,我們怎么進行測試呢?里面有許多的類和方法,很多方法上還帶有像TestMethod這樣的標簽屬性,但是我們關心的是,如何進行測試?絕對不是通常的F5來運行:(,在VSTS里,單元測試實際上有專門的管理工具.再次選到menu上的Test選項,移到windows上展開自菜單,里面有好幾個選項,我們選擇TestManager打開.在IDE窗口內出現了一個視圖結構的東西,在分割線的右邊是一個listView,里面全是當前測試項目包含的方法,我們隨便選幾個方法給勾上,右鍵,Run Checked Test,下邊馬上有出現了Test Result窗體,里面就是剛才你選擇的方法.如果不出意外的話,你的這個窗體內的方法result應該都是failed之類的數據,嗯,先不管這個,最起碼,我們已經運行了一次測試項目了,雖然有些奇怪,不過我們已經知道了如何運行一個測試項目了,那么再進入下一個step吧:)

Step3.看看我們的測試代碼里都有些什么.
雖然知道了怎么運行測試項目,但莫名其妙的全部出錯,是怎么回事呢?我們進入測試項目具體的代碼來看看.
我們會發現,每個測試類的名稱就是對應的目標類的名稱+"test",里面的方法也是如此,如果是構造函數,則是諸如
ConstructorTest或ConstructorTestN這樣的形式,N為重載次數.每個方法里面的代碼看上去也不奇怪,只是構造參數來調用而已,最后通過斷言來判斷(用過NUnit的朋友不會陌生吧?).我們試著直接把一個方法里的斷言去掉看看,編譯,TestManager,run,嘿,果然,去掉斷言的方法就pass了!看來蒙老大不難呢,只要把所有的方法的斷言都給去掉,然后給老大看測試后的結果,呵呵…

Step4.深入的了解一下方法上帶有的屬性的含義.
每個方法上幾乎都帶有TestMethod這個屬性,我們直覺告訴我們,這肯定是表示被測試函數的意思.事實也正是如此,在Unit Test里,有許多測試屬性,常用的如下:

屬性 描述

TestClass()

該屬性表示一個測試裝置。

TestMethod()

該屬性表示一個測試用例。

AssemblyInitialize()

在執行為執行選擇的第一個 TestClass() 中的第一個 TestMethod() 之前,執行帶有該屬性的方法。

ClassInitialize()

帶有該屬性的方法在執行第一個測試之前調用。

TestInitialize()

帶有該屬性的方法在執行每個 TestMethod() 之前調用。

TestCleanup()

帶有該屬性的方法在執行每個 TestMethod() 之后調用。

ClassCleanup()

帶有該屬性的方法在執行 ALL 測試之后調用。

AssemblyCleanup()

在執行為執行選擇的第一個 TestClass() 中的第一個 TestMethod() 之后,執行帶有該屬性的方法。

Description()

提供關于給定 TestMethod() 的描述。

Ignore()

由于某種原因忽略 TestMethod()TestClass()。

ExpectedException()

當測試特定異常時,如果使用該屬性指定的異常不是從實現代碼引發,則測試不會失敗。


需要注意的是,上面的屬性不是可以適用于所有方法的,比如AssemblyInitialize()和ClassInitialize()是必須是靜態方法的屬性.
我們可以把初始化的操作放在他們里進行.

Step5.修改測試方法及其斷言.
到現在,我們的思路開始清晰起來了,我們要開始做真正的測試了,不是僅僅去掉斷言就pass那么簡單了:)
我們的測試思路應該是這樣:我們調用該方法,需要傳入什么值,會影響什么值,當它執行之后,會產生怎樣的期待值?我們把期待值與實際的值想比較,同時寫下斷言失敗的message.
還是以我們的MyCahce為例,假如我們有個ListCache類,里面有個AddItemToTop(item)方法,表示把一個item插入到當前鏈表的頭部.我們實際的測試函數該這么寫
Guid id = System.Guid.NewGuid();
Item item = new Item(id);
list.AddItemToTop(item);
Assert.AreEqual(id, roomList.FirstLinkedItem.Key, "插入后查詢獲得的key值與插入的對象的key值不相等!");
通過比對插入后的鏈表的頭部的key與之前保存的key值來判斷,這是不是一次成功的插入.
這只是個很簡單的例子,我們當然應該根據具體的方法需要實現的功能來定義測試代碼.

Step6.OVER
完成了上面5部,相信你已經對VSTS的Unit Test非常的熟悉了,接下來需要做的就是把你需要的測試的method都提供正確的測試代碼,注意,這里我們甚至不要考慮我們本身的項目究竟有沒有實現該功能,但我們應該該知道,我們需要什么功能.我們只針對應該產生的結果寫測試代碼.當測試不通過時,我們只需要修改我們的目標項目,而不再需要修改我們的測試項目.這其實正是TDD(測試驅動開發)的思想,我們如果要驗證我們的方法有沒有錯,只需要run一下test即可,真正實現了全自動化單元測試, 這里邊的實際開發效率的提高,只有你在真正體會過后才能明白:)

以上就對VSTS2005單元測試進行了一番介紹。

【編輯推薦】

  1. 用VSTS代碼驗證工具捕捉C/C++錯誤
  2. VSTS 編寫測試Test技巧
  3. 全職殺手:用VSTS2010進行軟件生命周期管理
  4. 用VSTS代碼驗證工具捕捉C/C++錯誤
  5. 自定義VSTS開發流程
責任編輯:yangsai 來源: 網絡轉載
相關推薦

2009-08-19 09:00:48

單元測試框架自動化測試

2016-09-26 16:42:19

JavaScript前端單元測試

2012-03-30 15:52:51

ibmdw

2017-01-16 13:38:05

前端開發自動化

2017-09-21 16:06:43

DevOps自動化測試代碼

2017-01-14 23:42:49

單元測試框架軟件測試

2021-10-13 10:06:49

自動化IT安全

2022-02-04 21:50:37

網絡安全自動化

2011-04-18 12:52:37

自動化測試功能測試軟件測試

2012-11-20 17:22:57

2010-08-27 09:11:27

Python單元測試

2022-08-23 09:00:00

Web測試工具自動化

2021-03-03 14:50:55

安全自動化機器學習網絡安全

2023-08-02 15:33:27

2010-06-22 09:06:36

Visual Stud

2023-07-26 08:58:45

Golang單元測試

2011-05-16 16:52:09

單元測試徹底測試

2009-07-21 16:30:15

iBATIS.NET與單元測試

2012-02-27 17:34:12

Facebook自動化

2017-10-01 06:24:13

點贊
收藏

51CTO技術棧公眾號

国产黄人亚洲片| 欧美国产一级| 日韩欧美国产免费播放| 午夜精品一区二区三区在线观看 | 欧美精品成人一区二区三区四区| www.午夜色| 天堂av中文字幕| 男女激情视频一区| 欧美韩国理论所午夜片917电影| 国产精品三级在线观看无码| 亚洲欧洲日韩精品在线| 精品久久香蕉国产线看观看亚洲| 亚洲精品一区二区三区蜜桃久| 国产内射老熟女aaaa∵| 久久亚洲精选| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲人人夜夜澡人人爽| 精品午夜av| 在线免费av一区| 国产成人艳妇aa视频在线| 久草在线青青草| 高清不卡在线观看av| 国产精品一区二区三区久久久| 国产无套内射又大又猛又粗又爽 | 在线日韩日本国产亚洲| 国产人成视频在线观看| www欧美在线观看| 色婷婷av一区| 亚洲美免无码中文字幕在线| av免费在线观看网址| 日本一区二区三区久久久久久久久不 | 欧美日韩性生活片| 中文在线观看免费| 国产精品短视频| 日本在线视频不卡| 少妇高潮一区二区三区69| 国产福利一区在线观看| 成人黄色av网站| 一级久久久久久| 亚洲综合国产| 91av在线播放视频| 国产精品99无码一区二区| 亚洲一区色图| 久久精品久久久久久国产 免费| 久久美女免费视频| 亚洲三级网页| 日韩黄在线观看| 中文在线观看免费视频| 97超碰成人| 精品久久久久一区| 佐佐木明希电影| 91欧美极品| 亚洲成人网久久久| xxxx视频在线观看| 黄色网一区二区| 亚洲国产精品大全| 久久无码人妻精品一区二区三区 | www.成人影院| 色综合久久久久久久久久久| 国产一区亚洲二区三区| 亚洲va中文在线播放免费| 欧美性开放视频| 国产天堂在线播放| 久久精品97| 欧美久久久影院| 51自拍视频在线观看| 一区二区亚洲视频| 欧美精品一区视频| 双性尿奴穿贞c带憋尿| 国产日产一区| 日韩中文字幕国产| 国产黄在线免费观看| 伊人久久综合| 日韩av毛片网| 国产一区二区波多野结衣| 国产麻豆成人精品| 国产伦精品一区二区三区照片91| 日韩a在线观看| 国产精品欧美精品| 欧洲金发美女大战黑人| 国产免费拔擦拔擦8x高清在线人| 欧美视频在线免费看| 久久久精品三级| 九九99久久精品在免费线bt| 亚洲高清久久网| 91成年人网站| 中国成人一区| 欧美亚洲激情视频| 一区二区日韩在线观看| 大美女一区二区三区| 欧美日本韩国一区二区三区| 免费成人黄色| 亚洲图片一区二区| 特级丰满少妇一级| 91精品国产自产在线丝袜啪| 亚洲欧美另类国产| 欧美激情图片小说| 久久久久久黄| 91精品国产99久久久久久红楼| 四虎影视2018在线播放alocalhost| 欧美国产日韩a欧美在线观看| 91成人综合网| 91精品国产66| 欧美成人官网二区| 三级黄色免费观看| 国产视频一区三区| 97超碰人人看人人| 懂色一区二区三区| 亚洲va韩国va欧美va精品 | 成人亚洲一区二区一| 色噜噜色狠狠狠狠狠综合色一| 三级网站视频在在线播放| 在线观看日产精品| 日韩精品人妻中文字幕有码 | 色噜噜狠狠色综合网图区| 亚洲视频免费播放| 国产精品一区在线观看乱码| 天堂精品一区二区三区| 免费高潮视频95在线观看网站| 在线观看91精品国产麻豆| 久久久久久亚洲中文字幕无码| 欧美日韩hd| 亚洲wwwav| 日本在线www| 在线观看91精品国产入口| 日本道中文字幕| 欧美三级午夜理伦三级中文幕| 91精品免费看| av在线第一页| 在线观看精品一区| 女~淫辱の触手3d动漫| 国产精品日韩精品欧美精品| 国产精品免费视频一区二区| mm1313亚洲国产精品美女| 欧美日韩国产123区| 在线观看亚洲大片短视频| 久久精品一区| 欧美一区观看| 日本一区二区三区视频在线| 亚洲欧美日韩第一区| 五月婷婷亚洲综合| 97久久精品人人做人人爽| 成人午夜视频在线观看免费| 亚洲一二三区视频| 欧美噜噜久久久xxx| 国产精品人人爽| 亚洲婷婷国产精品电影人久久| 亚洲另类第一页| 999视频精品| 成人免费福利在线| 菠萝菠萝蜜在线视频免费观看| 欧美一区二区在线视频| 欧美日韩人妻精品一区二区三区| 国产成人免费视频| 国产va亚洲va在线va| 老牛影视av一区二区在线观看| 久久久在线免费观看| 少妇人妻精品一区二区三区| 欧美性xxxxxxx| 久久国产柳州莫菁门| 日本欧美加勒比视频| 樱花www成人免费视频| 国产一区二区三区黄网站| 欧美国产第二页| 日本人妖在线| 欧美日韩在线一区二区| 蜜桃av.com| 国产成人av电影| 国产精品va无码一区二区| 九九久久精品| 91精品久久久久久久久青青 | 日本中文字幕精品| 极品裸体白嫩激情啪啪国产精品| 精品无人乱码一区二区三区的优势| 在线观看网站免费入口在线观看国内| 国产性色av一区二区| 国产又粗又黄又爽| 伊人婷婷欧美激情| 中文精品在线观看| 激情图片小说一区| 天堂…中文在线最新版在线| 欧美日韩国产在线观看网站 | 一个色在线综合| 爱爱的免费视频| 国内成+人亚洲+欧美+综合在线| 福利视频一区二区三区四区| 日韩欧美视频| 精品不卡在线| 国产在线一区不卡| 欧美与黑人午夜性猛交久久久| 人人干在线视频| 日韩激情av在线播放| 97免费观看视频| 黑人精品xxx一区一二区| 老司机深夜福利网站| 成人激情黄色小说| 国产一二三四在线视频| 精品福利av| 亚洲一区二区三区精品动漫| 都市激情亚洲欧美| 国产精品一区二区3区| 国产无遮挡裸体视频在线观看| 中文字幕日韩综合av| 天堂av手机版| 日韩欧美一区二区三区在线| 中文字幕精品在线观看| 亚洲成av人在线观看| 亚洲AV成人无码精电影在线| 久久这里只有精品6| 色噜噜狠狠永久免费| 亚洲一区二区免费看| 日本人妻伦在线中文字幕| 精品国产aⅴ| 久久亚洲综合网| 超碰精品在线| 91在线高清视频| 日本综合视频| 日本久久久久久久| 乱馆动漫1~6集在线观看| 欧美乱人伦中文字幕在线| 久久99精品久久久久久野外| 国产亚洲在线播放| 日本大臀精品| 亚洲激情在线观看| 蜜桃av噜噜一区二区三区麻豆| 欧美日韩精品一区二区在线播放| 天天干天天干天天操| 亚洲国产成人av| 免费中文字幕在线观看| 中文字幕一区二区视频| 天天摸日日摸狠狠添| 欧美高清一级片在线观看| 蜜桃无码一区二区三区| 久久综合狠狠综合久久综合88 | 日本xxxxxwwwww| 日韩小视频在线观看专区| 一本色道久久综合熟妇| 欧美日韩亚洲国产综合| 在线视频1卡二卡三卡| 欧美色图免费看| 伊人精品一区二区三区| 欧美视频你懂的| 伊人久久成人网| 欧美精品一二三区| 国产毛片在线视频| 欧美一区二区三区视频免费| 99久久国产免费| 日韩一级大片在线| 成人小说亚洲一区二区三区| 精品国产一区二区三区av性色 | 成人免费视频国产免费| 日韩欧美999| 成人免费一级片| 欧美剧情片在线观看| 国产情侣一区二区| 日韩精品一区二区在线观看| 成人免费视频国产| 日韩福利视频在线观看| 欧美欧美欧美| 正在播放欧美视频| 91蜜桃在线视频| 国内精品久久久久| 日韩在线观看不卡| 国产欧美一区二区三区久久人妖 | 性欧美.com| 久久久精品久久久久久96| 欧美美女黄色网| 99精品视频免费| 青青草精品视频在线观看| 精品一区二区三区欧美| 无码av免费精品一区二区三区| 91在线高清观看| 五月婷婷婷婷婷| 亚洲一区电影777| 五月天婷婷导航| 欧美一区二区在线视频| 天天av综合网| 久久精品人人做人人爽| bbw在线视频| 国产精品久久999| 99久久人爽人人添人人澡 | 成人观看高清在线观看免费| jizz性欧美23| 亚洲精品一区二区三区av| 黄色在线一区| 男人女人黄一级| 国产99久久久国产精品免费看| 欧美亚一区二区三区| 亚洲三级在线免费| 国产精品777777| 欧美一级理论片| 麻豆app在线观看| 欧美精品久久久久久久免费观看 | 日韩欧美电影一区| 精品久久久久一区二区三区 | 国产.精品.日韩.另类.中文.在线.播放| 中文字幕人妻一区二区三区| ...av二区三区久久精品| 日韩欧美国产亚洲| 这里是久久伊人| 毛片网站在线| 亚洲18私人小影院| 国产欧美日韩电影| 日韩免费一区二区三区| 1024成人| 999热精品视频| 国产精品视频yy9299一区| 精品91久久久| 欧美成人精品1314www| 免费在线你懂的| 国产精品wwwwww| 亚洲第一二三区| 精品国产av无码一区二区三区| 老色鬼精品视频在线观看播放| 日本黄色片在线播放| 亚洲在线视频网站| 国产精品无码久久久久成人app| 亚洲欧美一区二区三区久久| 超碰在线中文字幕| av观看久久| 亚洲精品成人| 男人的天堂最新网址| 国产欧美精品日韩区二区麻豆天美| 久久国产精品免费看| 精品精品欲导航| 欧美性受ⅹ╳╳╳黑人a性爽| 成人自拍性视频| 日韩一区二区在线| 国产91色在线观看| 国产精品热久久久久夜色精品三区 | 国产三区视频在线观看| 国产精品美乳在线观看| 国内黄色精品| 日本黄网站免费| 久久久99精品免费观看| 亚洲第一网站在线观看| 亚洲欧美精品suv| 成人看片网站| 天堂精品一区二区三区| 免费一级片91| 开心激情五月网| 欧美一区二区三区在线观看| 伦xxxx在线| 91在线观看免费高清| 永久91嫩草亚洲精品人人| 国产人妻精品久久久久野外| 亚洲欧美日韩电影| 国产77777| 77777亚洲午夜久久多人| 亚洲+变态+欧美+另类+精品| 两根大肉大捧一进一出好爽视频| www国产成人| 最近免费中文字幕大全免费版视频| 亚洲天堂精品在线| 国产精品黄色片| 91国在线高清视频| 91玉足脚交白嫩脚丫在线播放| 午夜精品久久久久久久久久久久久蜜桃| 日韩精品视频免费| 日韩美女在线看免费观看| 亚洲日本精品国产第一区| 黄页网站大全一区二区| 免费中文字幕视频| 亚洲九九九在线观看| 国产亚洲欧美日韩精品一区二区三区| 一区二区三区欧美在线| 国产jizzjizz一区二区| 日韩精品久久久久久免费| 一区二区三区在线播放欧美| va天堂va亚洲va影视| 黄色一级视频在线播放| 国产亚洲欧美激情| 亚洲综合五月天婷婷丁香| 欧美乱妇高清无乱码| 九九在线高清精品视频| 日本超碰在线观看| 亚洲精品久久久蜜桃| 日韩二区三区| 亚洲jizzjizz日本少妇| 国产日韩亚洲欧美精品| 久久爱一区二区| 亚洲精品suv精品一区二区| 国产精品伦一区二区| 国产精品va在线观看无码| 久久夜色精品国产欧美乱极品| 国产精品色综合| 欧美在线免费观看| 中文字幕乱码亚洲无线精品一区 | 天天综合久久| 一本加勒比波多野结衣| 欧美日韩精品专区| 天堂网在线最新版www中文网| 中文字幕在线亚洲三区| 99re这里只有精品视频首页| 中文文字幕一区二区三三| 国产做受69高潮| 99久久综合| 蜜桃av免费看| 亚洲第一中文字幕| 亚洲男女网站|