欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
TestDriven.NET 2.0——單元測試的好助手 (轉 TerryLee)

引言

在軟件開(kāi)發(fā)領(lǐng)域,測試驅動(dòng)開(kāi)發(fā)(Test Driven Development,TDD)技術(shù)在逐漸為廣大開(kāi)發(fā)者所接受,它是在添加新代碼之前讓你的測試代碼出錯的一種開(kāi)發(fā)技術(shù)。在開(kāi)始編寫(xiě)代碼之前首先要寫(xiě)你的測試代碼,然后再編寫(xiě)代碼讓你的測試通過(guò),可以想象,如果沒(méi)有一個(gè)好的單元測試工具,這項工作其實(shí)是無(wú)法完成的。相信很多.NET開(kāi)發(fā)人員者對于開(kāi)源的NUnit都不陌生,但是它并不能很好的與Visual Studio.NET IDE集成起來(lái)。

這里我將向大家介紹另一款優(yōu)秀的單元測試工具——TestDriven.NET 2.0。它是以插件的形式集成在Visual Studio.NET IDE中的單元測試工具,能夠兼容各種Visual Studio版本,并且集成了多種單元測試框架諸如NUnit,MbUnit,以及Visual Studio Team System適配器等。

TestDriven.NET的前身是NUnitAddIn,由Jamie Cansdale大師開(kāi)發(fā),一開(kāi)始作者只是想做一個(gè)NUnit插件集成到Visual Studio中,經(jīng)過(guò)多次版本更新,NUnitAddIn20049月底更名為TestDriven.NET,并在當年的12月初發(fā)布了它的第一個(gè)Release版本,即TestDriven.NET 1.0。由于它在開(kāi)發(fā)中的出色表現,讓很多開(kāi)發(fā)人員期待它的下一個(gè)版本的發(fā)布,這一等待卻足足等了兩年,在今年的10月底,終于迎來(lái)了姍姍來(lái)遲的TestDriven.NET 2.0版本。然而這一等待卻是值得的,在2.0中,給我們帶來(lái)了太多的驚喜,它集成了.NET Reflector、NConver、NConverExplorer、TypeMock.NET等,功能更加強大,下面我將一一介紹TestDriven.NET 2.0中涌現出的這些亮點(diǎn)。

基本使用

安裝完TestDriven.NET 2.0 后,重新啟動(dòng)Visual Studio 2005,可以發(fā)現在Visual Studio.NET IDE的右鍵菜單中會(huì )多出一些新項,所有的操作都是直接通過(guò)這些右鍵菜單來(lái)完成。我們先來(lái)編寫(xiě)一小段簡(jiǎn)單的測試代碼:

[Test]

public void TestMethodRun()

{

    ClassA ca = new ClassA();

    int expected = 2;

    int result = ca.GetResult();

    Assert.AreEqual(expected, result);

}

在以前如果您使用NUnit進(jìn)行單元測試,對于這樣一個(gè)簡(jiǎn)單的測試,首先需要運行NUnit GUI,加載當前的程序集,并點(diǎn)擊Run按鈕運行測試,測試通過(guò)后再回到IDE繼續編寫(xiě)代碼:

現在有了TestDriven.NET 2.0,就不會(huì )有這么麻煩了,我們不用額外運行任何程序,只需要在Visual Studio 2005 IDE中右擊并選擇Run Test菜單命令就可以運行測試,日常開(kāi)發(fā)中我們都已經(jīng)習慣了在IDE中進(jìn)行這種操作,所以這樣更加符合我們的開(kāi)發(fā)習慣,也不用頻繁在應用程序之間切換窗口。

TestDriven.NET 2.0 測試的結果將在Output窗口中顯示。

稍微寫(xiě)過(guò)一點(diǎn)單元測試代碼的朋友都知道,實(shí)際開(kāi)發(fā)中的每一個(gè)測試,測試方法都不可能只有一個(gè)斷言(Assert),在以前使用NUnit時(shí),測試如果通不過(guò),我們無(wú)法根據錯誤信息快速準確的定位到代碼中的某一個(gè)斷言,有了TestDriven.NET 2.0,當測試出現錯誤時(shí),您只需要在Output窗口中雙擊錯誤提示,就可以直接定位到出錯的斷言代碼行,極大的提高了排錯的效率。

在上面的測試代碼中,我們僅僅是點(diǎn)擊了右鍵菜單Run Test,并沒(méi)有選擇運行哪一個(gè)測試方法或者測試類(lèi),那么TestDriven.NET 2.0是如何選擇并運行測試的呢?其實(shí)這跟我們點(diǎn)擊鼠標的位置有關(guān),點(diǎn)擊鼠標的位置如果在標記為Test的測試方法內,它只會(huì )執行該測試方法;點(diǎn)擊鼠標的位置如果在方法之外而在標記為TestFixture的類(lèi)里面,它會(huì )執行該類(lèi)中所有標記為Test的測試方法;點(diǎn)擊鼠標的位置如果在類(lèi)之外,而在某一個(gè)命名空間里面,則它會(huì )執行該命名空間下所有標記為TestFixture的測試類(lèi)。

Ad-Hoc 測試

在開(kāi)發(fā)中,我們常常會(huì )遇到跟蹤一些變量的值和某些方法的返回值,一般情況下大家都會(huì )選擇使用Command Window,這種方式需要通過(guò)輸入一些命令來(lái)查看,未免有些麻煩。TestDriven.NET 2.0為我們提供了一鍵操作的功能,讓我們可以隨時(shí)隨地的跟蹤方法的返回值等,而不用輸入任何命令。在普通的方法中TestDriven.NET 2.0也可以運行測試(Run Test),不管方法的作用域是public還是private,是實(shí)例方法還是static方法。如果測試方法是實(shí)例方法,它會(huì )使用默認的構造函數創(chuàng )建一個(gè)類(lèi)的對象,在執行測試完成時(shí)再釋放掉該對象。如果方法有返回值,將會(huì )顯示在Output窗口中。運行下面的測試:

會(huì )在Output窗口中輸出:

Debug模式測試

在運行測試的過(guò)程中,有時(shí)候需要調試跟蹤一些信息,如果使用NUnit,由于它沒(méi)有集成在IDE中,也就無(wú)法設置斷點(diǎn)。在TestDriven.NET 2.0提供了以Debug模式進(jìn)行測試,可以在測試代碼中設置斷點(diǎn),并進(jìn)行跟蹤,這時(shí)我們需要選擇Test with | Debugger菜單命令。

停止測試進(jìn)程

在運行測試過(guò)程中,有時(shí)候會(huì )有創(chuàng )建一些應用程序域,但并沒(méi)有被釋放,這樣會(huì )有部分程序集被加載該應用程序域中并且已經(jīng)鎖定,所以可能會(huì )造成編譯失敗。這時(shí)需要釋放掉一些測試進(jìn)程來(lái)可以繼續編譯。在任務(wù)欄的右下角,所有的測試進(jìn)程都會(huì )顯示在這里,點(diǎn)擊右鍵,選擇Stop菜單命令可以結束測試進(jìn)程。

集成Reflector

.NET Reflector是一個(gè).NET平臺下的類(lèi)瀏覽器和反編譯工具,我們可以用它來(lái)瀏覽程序集的類(lèi)和方法,可以分析由這些類(lèi)和方法生成的中間語(yǔ)言 (MSIL),相信大家都用過(guò),但它仍然是作為一個(gè)獨立的工具存在的,在TestDriven.NET 2.0中它被很好的集成在了Visual Studio.NET IDE,通過(guò)右鍵菜單,就可以直接使用.NET Reflector。



集成代碼覆蓋率分析工具

在做單元測試的時(shí)候,我們總是希望知道自己的代碼有多少覆蓋到了,哪些代碼是沒(méi)有測試到的,如果沒(méi)有安裝Visual Studio Team System,無(wú)法用Team Converage進(jìn)行代碼覆蓋率的分析,這時(shí)使用大名鼎鼎的NConver是一個(gè)不錯的選擇,并且使用NconverExplorer可以去查看分析結果,所有這些仍然需要運行新的應用程序,TestDriven.NET 2.0把這一切都集成到了IDE中,可以在沒(méi)有安裝Team System的環(huán)境下使用Team Converage,也不用單獨安裝NConver。

重復運行測試

重復運行測試可以說(shuō)是TestDriven.NET 2.0的一大亮點(diǎn)。TestDriven.NET2.0出現之前,如果在運行測試的過(guò)程中,測試代碼不能通過(guò),這時(shí)我們會(huì )花幾秒鐘時(shí)間去修改測試代碼,并再次運行測試,但是往往卻發(fā)現找不到剛才測試的是哪個(gè)代碼塊,這時(shí)您可以使用重復運行測試命令,不管你鼠標點(diǎn)擊的位置在哪兒,它都會(huì )直接運行上一次的測試。

可插拔的單元測試框架

.NET平臺下,單元測試框架有很多,TestDriven.NET 2.0不可能把所有的單元測試框架盡收其中,但是它提供了一種很好的可插拔的機制。當你安裝一種新的測試框架后,TestDriven.NET 2.0會(huì )自動(dòng)在它的菜單中出現這一項,在測試項目上點(diǎn)右鍵選擇Test With菜單命令,可以選擇使用哪一個(gè)單元測試框架。

集成TypeMock.NET

在做單元測試的過(guò)程中,最麻煩的部分就是我們的測試代碼必須依賴(lài)于系統的其他部分,如數據庫等。這時(shí)候我們會(huì )使用一類(lèi)替代品來(lái)代替這些真實(shí)的對象,即使用Mock對象,幸運的是我們不用每次都去實(shí)現自己的Mock對象,在.NET平臺下,有很多款Mock對象的框架供我們選擇。在TestDriven.NET 2.0 出現之前,使用哪個(gè)Mock對象的框架,我們需要去下載并安裝它們,在TestDriven.NET 2.0 中已經(jīng)集成了TypeMock.NET框架,這使得我們可以很方便的直接使用而不用再去自行選擇。

結束語(yǔ)

如果只做單元測試,我會(huì )選擇Nunit;如果要進(jìn)行類(lèi)庫反編譯,我會(huì )選擇.NET Relector;如果要分析代碼的覆蓋率,我會(huì )選擇NConver;如果要查看代碼覆蓋率的分析結果,我會(huì )選擇NConverExplorer,但如果要把以上所有的事情集成在IDE中一起去做,那毫無(wú)疑問(wèn),我會(huì )選擇TestDriven.NET 2.0。希望我這篇文章能拋磚引玉,引領(lǐng)大家使用TestDriven.NET 2.0,走上單元測試之路。當然對于TestDriven.NET 2.0它的專(zhuān)業(yè)版和開(kāi)發(fā)版已經(jīng)開(kāi)始收費,只有個(gè)人版仍然可以免費下載使用。

有關(guān)TestDriven.NET 2.0的詳細信息請訪(fǎng)問(wèn):http://www.testdriven.net/

——本文發(fā)表在《程序員》雜志200612期,有修改

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
.NET開(kāi)源項目介紹及資源推薦:?jiǎn)卧獪y試
.NET下的單元測試工具推薦
TestDriven.Net常用屬性介紹及使用
.NET開(kāi)源項目介紹及資源推薦:序 - TerryLee‘s Tech Space - 博...
DotTrace
.net輔助工具匯集
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久