[Tool] 隨寫隨測的好用工具 – Ncrunch

[Tool] 隨寫隨測的好用工具 – Ncrunch

前言

在撰寫程式的過程中, 我們通常會同時撰寫單元測試來測試我們的測試,

而寫測試的時候, 我們總是必須要重複著 寫Code => 停下來按單元測試等結果 這個過程,

如果單元測試數目多的時候, 常常會需要花一下下來等測試跑完, 雖然可能只有幾秒鐘而已

但我在日前偶然發現這個工具 - Ncrunch, 它顛覆了以往我們寫Code的流程,

我們不再需要浪費時間在等單元測試跑完的結果, 就算只有幾秒鐘,

而是可以行雲流水般的持續寫著我們的程式碼和測試,

還可以在第一時間看到測試是否有通過, 以及是否有沒測試到的地方,

讓我一用就愛不釋手, 今天就要來向大家介紹這套好用的工具。

 

實際演練

在安裝完這套工具之後, 它可以很好的整合在Visual Studio之中, 方便我們使用

首先我們先建立一個類別庫(Class Library)和測試專案

2012-03-28_193606

再來我們建立一個Class, 它是一個折扣計算器, 透過GetPrice function可以取得折扣後的價格

2012-03-28_194611

同時撰寫我們的Test Case, 我們預期可以得到的折扣是價錢打九折

2012-03-28_195627

這時候我們可以看到測試程式出現紅點, 這代表Ncrunch已經在我們撰寫程式的同時開始進行測試,

紅點就代表那段程式碼在執行時有經過, 但最後發生exception, 紅色的x代表執行到此處發生Exception

黑色的點代表程式碼沒有執行到的地方

2012-03-28_195102

滑鼠移到紅色x上面可以看到被丟出來的是NotImplementedException以及它的資訊, 因為我們還沒開始撰寫邏輯程式碼

2012-03-28_195247

滑鼠點擊紅色x可以看到更多詳細的資訊, 原Class發生error的行數, 測試程式error的行數, 以及錯誤的資訊

雙擊NcrunchSample.PriceDiscounter.GetPrice 可以跳到原Class發生錯誤的地方, 讓我們非常容易Debug

2012-03-28_195500

我們可以看到原Class發生錯誤的地方也有個紅色的x, 這是因為我們尚未寫任何的邏輯,

所以執行到那一行會throw Exception, 現在開始完成我們的邏輯

2012-03-28_195838

從上圖可以看到原本紅點在我們撰寫完之後都變成綠色, 這代表測試程式執行完成並寫通過,通過的地方都是以綠色顯示,

而以往這是我們必須按執行單元測試才能得知的步驟, 現在不但不需要按,

馬上可以看到測試的結果, 以及測試程式執行時通過了哪些地方,

不通過就是紅色, 有通過就是綠色, 測試程式沒通過就是黑色, 十分直覺且方便

 

如果今天我們想在程式碼多加一個邏輯, 如果超過兩千就打八折如下

2012-03-28_200246

我們可以看到新撰寫的邏輯是黑色的點, 代表著我們撰寫的測試程式沒通過這些地方,

Ncrunch另一個好處是我們可以輕易地得知我們是否有測試程式沒有涵蓋的程式碼,

所以我們可以馬上地來補寫我們的測試程式

2012-03-28_200446

在撰寫完新的測試程式之後, 我們可以馬上看到測試程式都亮綠燈,

代表我們的測試通過了

2012-03-28_200538

跳回原Class也可以看到所有的程式碼都是綠色,

代表我們撰寫的測試涵蓋所有的邏輯, 並通過程式, 一目瞭然

 

結語

Ncrunch是一套很好的單元測試輔助工具,

它可以幫助我們輕易並即時的得知測試結果, 以及測試涵蓋的範圍,

並且它也支援許多的測試Framework, 例如NUnit, XUnit等等,

現在這套工具還在Beta版本, 因此是免費的,

建議大家在使用前更可以看一下官方的錄影檔,

你可以更清楚的感受到這套工具的魅力,

在官方網站也有關於這套工具更多詳細的介紹,

希望大家也會愛上它也愛上測試,

一起享受讓所有程式都亮起綠燈的快感 ^_^

 

Ncrunch - http://www.ncrunch.net/