[网摘].NET 程序员十种必备工具-NUnit

NUnit

NUnit 是为 .NET 框架生成的开放源代码单元测试框架。NUnit 使您可以用您喜欢的语言编写测试,从而测试应用程序的特定功能。当您首次编写代码时,单元测试是一种测试代码功能的很好方法,它还提供了一种对应用程序进 行回归测试的方法。NUnit 应用程序提供了一个用于编写单元测试的框架,以及一个运行这些测试和查看结果的图形界面。

编写 NUnit 测试

作 为示例,我将测试 .NET 框架中 Hashtable 类的功能,以确定是否可以添加两个对象并且随后检索这些对象。我的第一步是添加对 NUnit.Framework 程序集的引用,该程序集将赋予我对 NUnit 框架的属性和方法的访问权。接下来,我将创建一个类并用 TestFixture 属性标记它。该属性使 NUnit 可以知道该类包含 NUnit 测试:

[网摘].NET 程序员十种必备工具-NUnit using System;
[网摘].NET 程序员十种必备工具-NUnit
using System.Collections;
[网摘].NET 程序员十种必备工具-NUnit
using NUnit.Framework;
[网摘].NET 程序员十种必备工具-NUnit
[网摘].NET 程序员十种必备工具-NUnit
namespace NUnitExample
[网摘].NET 程序员十种必备工具-NUnit[网摘].NET 程序员十种必备工具-NUnit
[网摘].NET 程序员十种必备工具-NUnit {
[网摘].NET 程序员十种必备工具-NUnit     [TestFixture]
[网摘].NET 程序员十种必备工具-NUnit[网摘].NET 程序员十种必备工具-NUnit    
public class HashtableTest [网摘].NET 程序员十种必备工具-NUnit {
[网摘].NET 程序员十种必备工具-NUnit[网摘].NET 程序员十种必备工具-NUnit        
public HashtableTest() [网摘].NET 程序员十种必备工具-NUnit {
[网摘].NET 程序员十种必备工具-NUnit            
[网摘].NET 程序员十种必备工具-NUnit         }

[网摘].NET 程序员十种必备工具-NUnit     }

[网摘].NET 程序员十种必备工具-NUnit}


下 一步,我将创建一个方法并用 [Test] 属性标记它,以便 NUnit 知道该方法是一个测试。然后,我将建立一个 Hashtable 并向其添加两个值,再使用 Assert.AreEqual 方法查看我是否可以检索到与我添加到 Hashtable 的值相同的值,如下面的代码所示:

[网摘].NET 程序员十种必备工具-NUnit [Test]
[网摘].NET 程序员十种必备工具-NUnit
public void HashtableAddTest()
[网摘].NET 程序员十种必备工具-NUnit[网摘].NET 程序员十种必备工具-NUnit
[网摘].NET 程序员十种必备工具-NUnit {
[网摘].NET 程序员十种必备工具-NUnit     Hashtable ht
= new Hashtable();
[网摘].NET 程序员十种必备工具-NUnit            
[网摘].NET 程序员十种必备工具-NUnit     ht.Add(
" Key1 " , " Value1 " );
[网摘].NET 程序员十种必备工具-NUnit     ht.Add(
" Key2 " , " Value2 " );
[网摘].NET 程序员十种必备工具-NUnit
[网摘].NET 程序员十种必备工具-NUnit     Assert.AreEqual(
" Value1 " , ht[ " Key1 " ], " Wrong object returned! " );
[网摘].NET 程序员十种必备工具-NUnit     Assert.AreEqual(
" Value2 " , ht[ " Key2 " ], " Wrong object returned! " );
[网摘].NET 程序员十种必备工具-NUnit}

[网摘].NET 程序员十种必备工具-NUnit


这将确认我可以首先向 Hashtable 中添加值并随后检索相应的值 — 这是一个很简单的测试,但能够表现 NUnit 的功能。存在许多测试类型以及各种 Assert 方法,可使用它们来测试代码的每个部分。

要 运行该测试,我需要生成项目,在 NUnit 应用程序中打开生成的程序集,然后单击 Run 按钮。下图 显示了结果。当我看到那个大的绿色条纹时,我有一种兴奋和头晕的感觉,因为它让我知道测试已经通过了。这个简单的示例表明 NUnit 和单元测试是多么方便和强大。由于能够编写可以保存的单元测试,并且每当您更改代码时都可以重新运行该单元测试,您不仅可以更容易地检测到代码中的缺陷, 而且最终能够交付更好的应用程序。

[网摘].NET 程序员十种必备工具-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 月刊)。

你可能感兴趣的:(.net)