程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> TestDriven.NET – 快速入門

TestDriven.NET – 快速入門

編輯:C#入門知識

TestDriven.NET – 快速入門[譯文]

介紹

這部分將提供一個快速的入門向導,在vs.NET的任何一個版本上面使用TestDriven。NET

TDD(測試驅動開發)在你寫你的代碼之前,寫單元測試是種是一種習慣。在寫代碼之前寫單元測試,之後使得測試通過可以使得你的更加的理解你的意圖和目標。TDD(測試驅動開發)同樣鼓勵代碼的覆蓋,不單單可以提高代碼的質量,同樣允許你重構一些內部的類或者方法,並且快速簡單的測試外部對象的接口。

TestDriven.NET是VS插件式的單元測試. 他用原來的名字NUnitAddIn發展了很多年. 它支持多種單元測試框架包括了NUnit, MbUnit 和 MSTS並且和VS.NET的所有版本兼容. 個人版本和商業版都能發揮它的效果。

安裝

TestDriven.NET 可以使用admin或者是受限制的用戶進行安裝. 默認的情況下會對當前的用戶進行安裝. 由於受限的用戶沒有對Program Files 文件夾的訪問,那麼安裝就會在當前用戶的'Application Data\TestDriven.NET' 文件夾下進行.管理員用戶將會把文件安裝到 'Program Files\TestDriven.NET' 文件夾下. 默認的文件夾可以在 選擇'Custom' 在這個頁面 'Choose Setup Type' 下改變

TestDriven.NET 按著不同的功能打包成了 NUnit 和 MbUnit 兩個單元測試的Framework. 它同樣包含了一個在VSTS中執行的單元測試的適配器。他們將會在 'TestDriven.NET' 子文件夾下面。 (如圖一所示)

圖一:. TestDriven.NET Setup

執行測試

安裝完了TestDriven.NET之後,重啟VS, 'Run Test(s)' 命令 (在測試代碼的范圍之內,點擊鼠標) 提供了一個快速的編譯測試用例的渠道。它將會默認的執行測試方法.它將會自動的檢測到被使用的測試框架並且執行當前的測試用例。測試將會被測試引擎以一個外部進程的方式執行。這個進程將會保持進行著,可以提高後來執行測試的次數。一旦一個測試的進程被捕捉到,一個火箭(Rocket)的圖標將會的提示框中出現.

如果代碼編輯選項被選擇了,將要執行的測試將會被在光標的位置被終止。當你右鍵點擊在任何一個方法的內部,出現‘RunTest(s)每個單獨的測試將會被執行(如圖2)。右鍵點擊’Run Test(s)’的時候,所有的測試在一個命名空間中都會被執行。'Run Test(s)'按鈕也同樣在'Solution Explorer'中被找到.它可以被用來執行在一個解決方案,項目,或者項目item中的測試。

圖示 2. Run Test(s) menu item

隨機測試

隨機測試提供了一個很有用的拋棄命令行程序的替代物。他們無論如何不能替代了真正的單元測試。當然,他們將要打算提供一個方便的本地私有方法在第三個版本中。

任何一個方法都能夠通過簡單的右鍵點擊’Run Test’作為一個隨機測試被執行。他可以是公有的,私有的,靜態的instance的方法。Any method can be executed as an ad-hoc test simply by right-clicking inside it and selecting 'Run test(s)'. It can be a 'public', 'private', 'static' or 'instance' method. Instance方法來說,當你使用默認的類的構造器的時候,一個對象將會被建立。當一個測試被執行的時候,Dispose方法也會被實現了IDisposable接口的時候呗調用。

如果一個隨即的測試返回一個蠶食,這個參數將會呗擴展到’Test’的輸出面板。復雜的對象講有他們的域和屬性被顯示出來。可數的對象將會列出來。原始的對象將會轉換成字符串並將被顯示出來。當使用’Debug.WriteLine’的時候,同樣的結果也會被包含進來。

測試輸出 & 測試列表

這個 'Test' 輸出面板將是一個窗口,在這裡會看見所有的測試結果和警告信息(如圖三)。與命令行輸出和錯誤信息一起,跟蹤和調試信息同樣將會被發送,如果所有的測試在一個項目或者解決方案中呗執行,測試輸出框將只顯示忽略的或者沒有通過的測試。

當一個測試失敗,測試的名字一起會被異常的信息和跟蹤隊列被顯示出來。如果代碼被帶著一些調試信息所編譯,相同的堆棧跟蹤信息將會計算出行數。雙擊這些部分會是一個駕馭澤這個雜亂代碼的很好方法。

圖示 3. Output Test Pane

像輸出的面板中發送信息一樣,錯誤的測試童謠會加入到任務列表中。如果很多測試失敗了,那麼這將會建立一個很有用的總結視圖(如圖4)大體上來講,進一步的跟蹤堆棧,從興趣上來講將會是很有趣的。雙擊測試區域的任務列表是另一種進入代碼的方式。

圖示4. Task list view

使用 Debugger測試

'Test With'菜單中提供了很多替代內容的可以在測試中執行。選擇Debugger'內容可以在vs調試中執行測試. 通過在方法上加入斷電並且選擇'Test With Debugger' 可以進入一個單元測試。

圖示5 Test With Debugger

默認情況的話VS將要建立所有的項目在一個solution中,當他們用debugger執行的時候。在VS2003和2005中有個選項"Only build startup projects and dependencies on Run". 選中之後可以減少的提高編譯大的解決方案的時間。在vs2003中,選項是這個'Environment / Projects and Solutions'. Vs05可以在這個'Projects and Solutions / Build and Run'.下面找到。

測試項目 & 解決方案

通過右鍵點擊'Solution Explorer'窗口,選擇'Run Test(s)',在project裡面的所有測試都會被執行。失敗或者是忽略了的測試將會被發送'Test'輸出窗口和任務列表中,在一個樣式相似的 'Run Test(s)' 命令.如果執行所有的測試在一個項目或者解決方案中, 跟蹤,調試和命令行輸出是被禁止的,

同樣的,所有的測試在一個解決方案中將會在右鍵點擊在’Solution Explorer’窗口中的解決方案並且選擇'Run Test(s)'. 對於每一個在解決方案中的項目測試的框架將會被用來建立和測試被執行的時候使用正確的測試。項目不包含任何測試的將會被忽略掉

終止一個運行中的測試

當一個測試正在執行時,菜單中的'Abort Test' 選項將會出現在'Tools' 的菜單中(如圖6). 選擇一個選項之後將會終止一個正在執行的線程。當測試以這種方式終止的時候,任何一個清除的邏輯將會給一個執行的機會。

圖示 6. Abort Test

停止測試進程

有些情況是有必要停止一些測試的進程的。他們當中最公共的就是當一個app的域被建立了之後,但是沒有被加載到一個測試當中去。它能夠導致任何一個加載到app域中的程序集中被鎖定,任何一個隨後的編譯都會失敗。右鍵點擊火箭圖標在通知框中並選擇’stop’可以循環使用測試的進程(如圖7)。一個新的測試進程將會被下次使用’Run Test(s)’命令的時候被執行。

圖示 7. Stopping the Test Process

http://www.testdriven.net/quickstart.aspx 原文地址

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved