作者:James Avery 翻译:lucentoff
出处:http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/default.aspx
声明:版权属原作者所有,转载请注明出处!
NUnit
NUnit是一个为.NET Framework建立的开源单元测试框架。NUnit允许在代码中编写测试程序来测试应用程序特定的功能。单元测试是一种优秀的测试代码功能性的方法,它也为应用程序提供了一种回归测试方法。NUnit为编写单元测试提供一个框架并提供图形化界面运行测试和查看结果。
编写Nunit测试
例如,我想测试.NET Framework中Hashtable类的功能性以确定两个对象是否可以添加到Hashtable中并进行检索。首先,我要添加对NUnit.Framework程序集的引用,以便能够访问Nunit Framework的特性和方法。接下来,创建一个类并以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!");
}
以上测试虽然简单,但能够展示出NUnit的功能。NUnit中有许多测试类型和各种Assert方法,可用于测试代码的每个部分。
要运行该测试,需要创建一个项目,在NUnit中打开已生成的程序集,然后点击“Run”按钮,运行结果如图5所示。
图5 NUnit测试运行结果
当看到绿色的状态条,我感觉很兴奋也很亲切,因为它表明测试通过了。这个简单的例子展示了NUnit的易用性和强大的功能。编写可以保存并且无论何时改变代码都能重新运行的单元测试不仅使得检测代码缺陷更为容易,而且让你能够交付更好的应用程序。
NUnit是一个开源项目,下载网址:http://www.nunit.org/。还有一个很好的NUnit Visual Studio .NET插件,它能让你直接从Visual Studio运行单元测试。这个插件可以在http://sourceforge.net/projects/nunitaddin找到。要了解更多有关NUnit的信息以及它在测试驱动开发中的应用,可阅读2004年4月MSDN? 杂志中的文章“Test-Driven C#: Improve the Design and Flexibility of Your Project with Extreme Programming Techniques”(《C#测试驱动开发:利用极限编程技术改进项目设计和灵活性》)。