使用這個類的示例如下:
namespace UnitTestingExamples
{
using System;
using NUnit.Framework;
[TestFixture]
public class SomeTests
{
[Test]
public void TestEventLengthString()
{
// Should return true
bool bResult1 = Class1.CheckPalindrome("ABCCBA");
Assert.IsTrue(bResult1);
// Should return false
bool bResult2 = Class1.CheckPalindrome("ABCDBA");
Assert.IsFalse(bResult2);
}
[Test]
public void TestOddLengthString()
{
//should return true;
Assert.IsTrue(Class1.CheckPalindrome("ABCDCBA"));
// Should return false
Assert.IsFalse(Class1.CheckPalindrome("ABCDEBA"));
}
}
}
執(zhí)行你的Tests
好,現在我們已經討論過寫Unit Tests的基本步驟及方法,現在讓我們來看看如何執(zhí)行你所寫的Unit Tests。事實上非常簡單。NUnit里面有兩個已經寫好的Test Runner applications:一個是窗口GUI程序,一個是console XML(命令列)程序。你可以自由選擇你所喜歡的方式,基本上是沒有什么差別的。
如果你要使用窗口GUI的Test Runner app,你只需要執(zhí)行該程序,然后告訴它你要執(zhí)行的test method所在的assembly位置。這個包含有你所寫test methods的assembly是那一個class library(或是executable,*.dll或*.exe) assembly,其中含有前面談到的Test Fixtures。當你告訴Test Runner你的assembly所在的位置,Test Runner會自動load這個asembly,然后把所有的class及test methods都列在窗口的左欄。當你按下’Run’按鍵時,你會自動執(zhí)行所有列出來的test methods。你也可以double click其中的一個test class,或是一個test method之上,這樣會自動只執(zhí)行該class或是該method。
底下是窗口GUI Test Runner執(zhí)行時的樣子:
在一些的情況下,特別是你想要在你自己寫的build script中加入Unit Testing的情況下,你大概不會使用GUI Test Runner。在這個自動執(zhí)行build script的情況下,你一般會把你build的結果貼在網頁,或寫入log file里面存作紀錄,以供程序開發(fā)人員、經理或是客戶可以藉由檢查這個紀錄知道詳細情況。在這個情況,你可以用NUnit 2.1的console Test Runner application。這個Test Runner可以傳入assembly的位置當參數,其測試執(zhí)行結果是一個XML字符串。你可以用XSLT或是CSS把這個XML結果轉換成HTML,或是其它你想要的格式。如果你需要用到這個功能的話,請查看NUnit文件中有關console Test Runner application的資料。