NUnit Assert Class簡介
除了以上所提到的這些用來標示測試程序所在的attributes之外,NUnit還有一個重要的class你應該要知道如何使用。這個class就是Assert class。Assert class提供了一系列的static methods,讓你可以用來驗證主要程序的結果與你所預期的是否一樣。Assert class代替了舊的Assertion class,下面是這個類的方法:
Assert.IsTrue( bool );
Assert.IsFalse( bool );
Assert.IsNull( bool );
Assert.IsNotNull( bool );
Assert.AreSame( object, object )
Assert.AreEqual( object, object );
Assert.AreEqual( int, int );
Assert.AreEqual( float, float, float );
Assert.AreEqual( double, double, double );
Assert.Fail();
使用這個類的示例如下:
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"));
}
}
}
執行你的Tests
好,現在我們已經討論過寫Unit Tests的基本步驟及方法,現在讓我們來看看如何執行你所寫的Unit
Tests。事實上非常簡單。NUnit里面有兩個已經寫好的Test Runner applications:一個是窗口GUI程序,一個是console
XML(命令列)程序。你可以自由選擇你所喜歡的方式,基本上是沒有什么差別的。
如果你要使用窗口GUI的Test Runner
app,你只需要執行該程序,然后告訴它你要執行的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’按鍵時,你就會自動執行所有列出來的test methods。你也可以double click其中的一個test
class,或是一個test method之上,這樣會自動只執行該class或是該method。
在一些的情況下,特別是你想要在你自己寫的build script中加入Unit Testing的情況下,你大概不會使用GUI Test Runner。在這個自動執行build script的情況下,你一般會把你build的結果貼在網頁,或寫入log file里面存作紀錄,以供程序開發人員、經理或是客戶可以藉由檢查這個紀錄知道詳細情況。在這個情況,你可以用NUnit 2.1的console Test Runner application。這個Test Runner可以傳入assembly的位置當參數,其測試執行結果是一個XML字符串。你可以用XSLT或是CSS把這個XML結果轉換成HTML,或是其它你想要的格式。如果你需要用到這個功能的話,請查看NUnit文件中有關console Test Runner application的資料。
文章來源于領測軟件測試網 http://www.kjueaiud.com/