>(Addison-Wesley Professional,2003)一書中,使用下面2個原則來定義TDD:">
第2步.增加一個NUnit框架引用
在Microsoft Visual Studio .NET里創(chuàng)建這個例子時,你需要增加一個NUnit.framework.dll引用,如下:
在Solution Explorer右擊引用,然后選擇增加引用
NUnit.framework組件,在Add Reference對話框中按Select和OK按鈕。
圖4-2 描述了這步:
圖 4-2: 增加一個 NUnit.framework.dll 引用到工程
第3步.為工程加一個類.
為工程加一個NumbersFixture類。這里是這個例子的代碼。
using System;
using NUnit.Framework;
namespace NUnitQuickStart
{
[TestFixture]
public class NumersFixture
{
[Test]
public void AddTwoNumbers()
{
int a=1;
int b=2;
int sum=a+b;
Assert.AreEqual(sum,3);
}
}
}
第4步.建立你的Visual Studio 工程,使用NUnit-Gui測試
從程序->NUnit2.2打開NUnit-gui,加載本本工程編譯的程序集.
為了在Visual Studio .NET中自動運行NUnit-Gui,你需要建立NUnit-Gui作為你的啟動程序:
在 Solution Explorer里右擊你的NunitQuickStart工程。
在彈出菜單中選擇屬性。
在顯示的對話框的左面,點擊Configuration Properties夾
選擇出現(xiàn)在Configuration Properties夾下的Debugging。
在屬性框右邊的Start Action部分,選擇下拉框的Program作為Debug Mode值。
按Apply按鈕
設置NUnit-gui.exe 作為Start Application。,你既可以鍵入nunit-gui.exe的全路徑,也可使用瀏覽按鈕來指向它。
圖4-3 幫助描述本步驟:
圖 4-3:將NUnit-Gui 作為工程的測試運行器
第5步.編譯運行測試.
現(xiàn)在編譯solution。成功編譯后,開始應用程序。NUnit-Gui測試運行器出現(xiàn)。當你第一次開始NUnit-Gui,它打開時沒有測試加載。從File菜單選擇Oprn,瀏覽NUnitQuickStart.dll的路徑。當你加載了測試的程序集,測試運行器為加載的程序集的測試產(chǎn)生一個可見的表現(xiàn)。在例子中,測試程序集僅有一個測試,測試程序集的結構如圖4-4所示:
圖 4-4: 測試程序集的測試在 NUnit-Gui中的視圖
按Run按鈕。樹的節(jié)點變?yōu)榫G色,而且測試運行器窗口上的進度條變綠,綠色代表成功通過。
4.其他的一些核心概念
上面的例子介紹了基本的NUnit特性和功能. TestFixture, Test, 和 Assert是3個基本的特征,我們可以用這些特性進行程序員測試了.但是有的時候,你覺得這3個遠遠不夠,比如有的時候打開一個數(shù)據(jù)庫連接多次,有沒有只讓它打開一次的方法呢?如果我想把測試分類,應該怎樣實現(xiàn)呢?如果我想忽略某些測試,又應該如何去完成呢?不用擔心,NUnit已經(jīng)有這樣的功能了.
下面我們一一作出回答.
SetUp/TearDown 屬性
在早期給的test fixture定義里,我們說test fixture的測試是一組常規(guī)運行時資源.在測試完成之后,或是在測試執(zhí)行種,或是釋放或清除之前,這些常規(guī)運行時資源在一確定的方式上可能需要獲取和初始化.NUnit使用2個額外的屬性:SetUp 和TearDown,支持這種常規(guī)的初始化/清除.我們上面的例子來描述這個功能.讓我們增加乘法.
using System;
using NUnit.Framework;
namespace NUnitQuickStart
{
[TestFixture]
public class NumersFixture
{
[Test]
public void AddTwoNumbers()
{
int a=1;
int b=2;
int sum=a+b;
Assert.AreEqual(sum,3);
}
[Test]
public void MultiplyTwoNumbers()
{
int a = 1;
int b = 2;
int product = a * b;
Assert.AreEqual(2, product);
}
}
}
我們仔細一看,不對,有重復的代碼,如何去除重復的代碼呢?我們可以提取這些代碼到一個獨立的方法,然后標志這個方法為SetUp 屬性,這樣2個測試方法可以共享對操作數(shù)的初始化了,這里是改動后的代碼:
using System;
using NUnit.Framework;
namespace NUnitQuickStart
{
[TestFixture]
public class NumersFixture
{
private int a;
private int b;
[SetUp]
public void InitializeOperands()
{
a = 1;
b = 2;
}
[Test]
public void AddTwoNumbers()
{
int sum=a+b;
Assert.AreEqual(sum,3);
}
[Test]
public void MultiplyTwoNumbers()