NUnit
NUnit 是為 .NET 架構產生的開放原始碼單元測試架構。NUnit 使您可以用您喜歡的語言編寫測試,從而測試應用程式的特定功能。當您首次編寫代碼時,單元測試是一種測試代碼功能的很好方法,它還提供了一種對應用程式進 行迴歸測試的方法。NUnit 應用程式提供了一個用於編寫單元測試的架構,以及一個運行這些測試和查看結果的圖形介面。
編寫 NUnit 測試
作 為樣本,我將測試 .NET 架構中 Hashtable 類的功能,以確定是否可以添加兩個對象並且隨後檢索這些對象。我的第一步是添加對 NUnit.Framework 程式集的引用,該程式集將賦予我對 NUnit 架構的屬性和方法的訪問權。接下來,我將建立一個類並用 TestFixture 屬性標記它。該屬性使 NUnit 可以知道該類包含 NUnit 測試:
using System;
using System.Collections;
using NUnit.Framework;
namespace NUnitExample
{
[TestFixture]
public class HashtableTest {
public HashtableTest() {
}
}
}
下 一步,我將建立一個方法並用 [Test] 屬性標記它,以便 NUnit 知道該方法是一個測試。然後,我將建立一個 Hashtable 並向其添加兩個值,再使用 Assert.AreEqual 方法查看我是否可以檢索到與我添加到 Hashtable 的值相同的值,如下面的代碼所示:
[Test]
public void HashtableAddTest()
{
Hashtable ht = new Hashtable();
ht.Add("Key1", "Value1");
ht.Add("Key2", "Value2");
Assert.AreEqual("Value1", ht["Key1"], "Wrong object returned!");
Assert.AreEqual("Value2", ht["Key2"], "Wrong object returned!");
}
這將確認我可以首先向 Hashtable 中添加值並隨後檢索相應的值 — 這是一個很簡單的測試,但能夠表現 NUnit 的功能。存在許多測試類型以及各種 Assert 方法,可使用它們來測試代碼的每個部分。
要 運行該測試,我需要產生項目,在 NUnit 應用程式中開啟產生的程式集,然後單擊 Run 按鈕。 顯示了結果。當我看到那個大的綠色條紋時,我有一種興奮和頭暈的感覺,因為它讓我知道測試已經通過了。這個簡單的樣本表明 NUnit 和單元測試是多麼方便和強大。由於能夠編寫可以儲存的單元測試,並且每當您更改代碼時都可以重新運行該單元測試,您不僅可以更容易地檢測到代碼中的缺陷, 而且最終能夠交付更好的應用程式。
NUnit 是一個開放原始碼項目,並且可以從 http://www.nunit.org 下載。還有一個優秀的 NUnit Visual Studio .NET 增益集,它使您可以直接從 Visual Studio 中運行單元測試。您可以在 http://sourceforge.net/projects/nunitaddin 找到它。有關 NUnit 及其在測試驅動開發中的地位的詳細資料,請參閱文章“ Test-Driven C#: Improve the Design and Flexibility of Your Project with Extreme Programming Techniques ”( MSDN ? Magazine 2004 年 4 月刊)。