>(Addison-Wesley Professional,2003)一書中,使用下面2個(gè)原則來定義TDD:">
Exit退出。
View菜單有以下內(nèi)容:
Expand一層層擴(kuò)展現(xiàn)在樹中所選節(jié)點(diǎn)
Collapse 折疊現(xiàn)在樹中選擇的節(jié)點(diǎn)
Expand All遞歸擴(kuò)展樹中所選節(jié)點(diǎn)后的所有節(jié)點(diǎn)
Collapse All遞歸折疊樹中所選節(jié)點(diǎn)后的所有節(jié)點(diǎn)
Expand Fixtures擴(kuò)展樹中所有代表測試fixture的節(jié)點(diǎn)。
Collapse Fixtures 折疊樹中所有代表測試fixture的節(jié)點(diǎn)。
Properties 顯示樹中現(xiàn)所選節(jié)點(diǎn)的屬性。
Tools 菜單由這些項(xiàng):
Save Results as XML作為一XML文件保存運(yùn)行測試的結(jié)果。
Options讓你定制NUnit的行為。
現(xiàn)在看看右邊,你已經(jīng)熟悉Run按鈕和進(jìn)度條。這里還有一個(gè)緊跟Run按鈕的Stop按鈕:點(diǎn)擊這個(gè)按鈕會終止執(zhí)行正運(yùn)行的測試。進(jìn)度條下面是一個(gè)文本窗口,在它上方,由以下4個(gè)標(biāo)簽:
Errors and Failures 窗口顯示失敗的測試。在我們的例子里,這個(gè)窗口是空。
Tests Not Run 窗口顯示沒有得到執(zhí)行的測試。
Console.Error 窗口顯示運(yùn)行測試產(chǎn)生的錯(cuò)誤消息。這些此消息是應(yīng)用程序代碼使用Console.Error輸出流可以輸出的。
Console.Out窗口顯示運(yùn)行測試打印到Console.Error輸出流的文本消息。
2.2 一些常用屬性
接下來,我將講述這個(gè)框架如何使用.同時(shí)也涉及到一些非常重要的概念,我想其客戶屬性是非常重要的.在NUnit里,有以下幾種屬性:
Test Fixture
Test
下面我將對每種屬性一一講解.
TestFixtureAttribute
本屬性標(biāo)記一個(gè)類包含測試,當(dāng)然setup和teardown方法可有可無.(關(guān)于setup 和teardown方法在后面介紹)
做為一個(gè)測試的類,這個(gè)類還有一些限制
必須是Public,否則NUnit看不到它的存在.
它必須有一個(gè)缺省的構(gòu)造函數(shù),否則是NUnit不會構(gòu)造它.
構(gòu)造函數(shù)應(yīng)該沒有任何副作用,因?yàn)镹Unit在運(yùn)行時(shí)經(jīng)常會構(gòu)造這個(gè)類多次,如果要是構(gòu)造函數(shù)要什么副作用的話,那不是亂了.
舉個(gè)例子
using System; 2
using NUnit.Framework; 3
namespace MyTest.Tests 4{ 5 6 [TestFixture] 7 public class PriceFixture 8 { 9 //
10 }11}
TestAttribute
Test屬性用來標(biāo)記一個(gè)類(已經(jīng)標(biāo)記為TestFixture)的某個(gè)方法是可以測試的.為了和先前的版本向后兼容,頭4個(gè)字符(“test”)忽略大小寫.(參看http://nunit.org/test.html)
這個(gè)測試方法可以定義為:
public void MethodName()
從上面可以看出,這個(gè)方法沒有任何參數(shù),其實(shí)測試方法必須沒有參數(shù).如果我們定義方法不對的話,這個(gè)方法不會出現(xiàn)在測試方法列表中.也是說在NUnit的界面左邊的工作域內(nèi),看不到這個(gè)方法.還有一點(diǎn)是這個(gè)方法不返回任何參數(shù),并且必須為Public.
例如:
using System; 2
using NUnit.Framework; 3
4
namespace MyTest.Tests 5{ 6 [TestFixture] 7 public class SuccessTests 8 { 9 [Test] public void Test1()10 { /**//*
*/ }11 }12}
一般來說,有了上面兩個(gè)屬性,你可以做基本的事情了.
另外,我們再對如何進(jìn)行比較做一個(gè)描述。
在NUnit中,用Assert(斷言)進(jìn)行比較,Assert是一個(gè)類,它包括以下方法:AreEqual,AreSame,Equals
3.如何在.NET中應(yīng)用NUnit
我將舉個(gè)例子,一步一步演示如何去使用NUnit.
第1步.為測試代碼創(chuàng)建一個(gè)Visual Studio工程。
在Microsoft Visual Studio .NET中,讓我們開始創(chuàng)建一個(gè)新的工程。選擇Visual C#工程作為工程類型,Class Library作為模板。將工程命名為NUnitQuickStart.圖4-1是一個(gè)描述本步驟的Visual Studio .NET。
圖 4-1: 創(chuàng)建第一個(gè)NUnit工程