原創|產品更新|編輯:我只采一朵|2013-12-10 09:41:40.000|閱讀 680 次
概述:本文詳細講解了DevExpress CodeRush 13.2新增的 Unit Test Builder (UTB) 使用步驟,幫助你更好的完成代碼測試.
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
開發人員大概都遇到過這種情況:就是在調試代碼的過程中發現了一個由數據傳輸或軟件狀態引發的問題,你想繼續逐步執行代碼,但你又想為正在使用的方法添加一個測試用例。怎么辦?不用擔心,DevExpress CodeRush 13.2剛好新增了一個非常實用的新功能: Unit Test Builder (UTB)。它可以幫助你實現以上想法,下面小編就為你講解一下它的使用步驟:
1、首先,你需要一個測試項目去引用至少一個測試框架,這個框架隨便你選擇,因為CodeRush支持所有的測試框架,Unit Test Builder(UTB)支持引用了多個測試框架的項目。
2、開始調試程序,然后你會發現一些有趣的地方。比如這里調用了一個計算素數的類:
正如你從Expression Explorer中看到的那樣,我們正在傳送4,IsPrime方法返回了True。4不是一個素數,所以這是一個bug,下面進入IsPrime方法:
3、按下Ctrl+Alt+Shift+T為這個方法生成一個新的測試,Unit Test Builder將會彈出來:
調試結束后你會看到一個生成的測試列表。將鼠標放在 "Method Called" 列上會顯示值的路徑提示:
4、下面我們重命名測試方法,將它命名為FourIsNotPrime:
5、我們可以根據需要選擇設置不同的class,我們既可以使用當前的測試類,也可以創建一個新的測試類:
6、最后,我們可以添加一個可選的remarks,它會在一個XML doc comment中顯示:
注意,所有上面使用UTB (4-6, above)的步驟均是完全可選的,你可以繼續調試并添加測試方法,并且不需要對測試方法的名稱作任何更改,也不用管它的位置。
7、繼續調試并根據需要添加更多的測試
8、完成之后,停止進程或關閉正在調試的應用程序,到這個時候所有我們添加到UTB的測試都會生成。
9、現在你可以添加一些聲明代碼(CodeRush有一些模板比如 "at"代表 Assert.IsTrue, "af" 代表Assert.IsFalse) 最后我們的測試代碼是這樣的:
[TestClass] public class CalculatorTests { Calculator _Calc; [TestInitialize] public void Initialize() { _Calc = new Calculator(); _Calc.Owner = this; } [TestMethod] public void TestIsPrime5() { int candidate = 5; bool result = _Calc.IsPrime(candidate); Assert.IsTrue(result); } [TestMethod] public void TestIsPrime10() { int candidate = 10; bool result = _Calc.IsPrime(candidate); Assert.IsFalse(result); } // These two methods were generated following the // steps shown above in this blog. Note that the // UTB is smart enough to realize that we need // an instance of Calculator and that this test // fixture already had one. So we use that instance // in the generated test methods. /// <summary> /// Four is not a prime number! /// </summary> [TestMethod] public void FourIsNotPrime() { int candidate = 4; bool result = _Calc.IsPrime(candidate); Assert.IsFalse(result); } /// <summary> /// Nine is not a prime number! /// </summary> [TestMethod] public void NineIsNotPrime() { int candidate = 9; bool result = _Calc.IsPrime(candidate); Assert.IsFalse(result); } }
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件