好学IT学院:IT信息技术分享交流平台
标签:.NET  来源:互联网  作者:James-Avery(译:NorthTibet)  发布时间:2007-03-02  ★★★加入收藏〗〖手机版
摘要:本文讨论的工具如下:NUnit:编写单元测试的工具NDoc:创建代码文档的工具NAnt:生成解决方案的工具CodeSmith:代码生成工具FxCop:用于监视代码的——代码警察Snippet Compiler:小型代码段编译工具两个不同的转……

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 按钮。Figure 5 显示了结果。当我看到那个大的绿色条纹时,我有一种兴奋和头晕的感觉,因为它让我知道测试已经通过了。这个简单的示例表明 NUnit 和单元测试是多么方便和强大。由于能够编写可以保存的单元测试,并且每当你更改代码时都可以重新运行该单元测试,你不仅可以更容易地检测到代码中的缺陷,而且最终能够交付更好的应用程序。

Figure 5 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

  • 好学考试H5触屏版开放内测
  • 好学触屏公众号虎力全开、杨帆起航!