VS2005單元測試 單元測試工具
Team版的VS2005里面包含了完整的Test功能,具體有:Unit Test,WebTest和LoadTest.這一整套的測試基本涵蓋了軟件開發會使用到的測試功能.
我這里先從單元測試開始介紹(Unit Test).說起單元測試,很多使用.net進行開發的人員也許馬上就想起了NUnit,實際上它是個很好的工具,在VS2005出來之前,我也一直使用.不過現在VS2005已經提供了與NUnit一樣,甚至還要強大的功能,我們又有什么理由不使用呢?
OK,進入正題.首先我們要解決一個問題,為什么我們需要做單元測試?這個問題,對有經驗的老程序員來說,并不算是問題.一個軟件在開發的過程中,倘若不是非常微型的軟件,那么我們通常會劃分出若干個功能模塊來,然后一個模塊一個模塊的進行開發.每個子模塊完成后,我們并不知道它是否能正常的運行,尤其是當這個模塊只是個中間件類似的代碼塊,那么我們為了減少之后可能出現的問題和debug的難度(可以想象,如果在整合時期進行測試或者是甚至還有其他的模塊需要依賴該模塊才能進行開發的時候,盡早的測試將會是非常的重要),我們常常會對這單個模塊進行測試,比如寫段小程序,人為的寫入幾個參數來調用組件等.不用懷疑了,這就是單元測試.我相信,大部分的程序員都做過這樣的工作,而且也許還有許多程序員就如我上面所說的,單獨寫段小程序來進行單元測試(我自己以前也是如此),現在我們需要認真考慮下下一個問題了:如何進行高效的,高可靠的,甚至自動化的單元測試?
VSTS里的Unit Test可以幫助我們實現我們希望的絕大多數功能.我們從實際的項目開發入手來介紹.假設我們新建了一個.net項目,嗯,這是一個有關緩存的子項目,名字叫MyCache.我們很認真的設計了項目的架鉤,進行了可行性分析,接口和抽象的建立,具體對象的建立,關系建立,最后編碼完成了.項目經理叫我們不要高興的太早,他要求我們必須對這個項目進行可靠的單元測試,因為這個子項目非常重要,將會被許多項目引用.盡管我們很有信心,但是沒有辦法,我們依然需要進行單元測試.我們使用了Visual Studio Team System開發了這個項目,于是我們理所當然的使用自帶的Unit Test工具進行單元測試.
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.看看我們的測試代碼里都有些什么.
雖然知道了怎么運行測試項目,但莫名其妙的全部出錯,是怎么回事呢?我們進入測試項目具體的代碼來看看.
文章來源于領測軟件測試網 http://www.kjueaiud.com/