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