NUnit学习笔记 VS.net 2005篇[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

一、简介
  NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,最新版本2.2.6。NUnit 2.2.6有5个下载文件,这里用的是NUnit-2.2.6-net-2.0.msi。下载后双击该文件,然后按提示进行安装,这样系统中就具备NUnit环境了。
二、配置类库
  开发工具我使用的是微软的Visual Studio.net 2005(以下简称vs),打开后点击菜单“文件”->“新建项目”,打开“新建项目”对话框:

在该对话框中,“项目类型”我选择的是“Visual Basic”,如果想使用C#或者J#,请自行选择“其他语言”下的“Visual C#”或“Visual J#”,反正操作差不多,下边也都会介绍到,不过VC就免谈了;“模板”我选的是“控制台应用程序”,您也可以选其它“模板”,我看的例子创建的就是“类库”;名称请自行设定,VB、C#、J#项目我都建了,分别起名为NUnitVB、NUnitCS和NUnitJS,设置好后,点击“确定”按钮。此时项目虽已创建,但尚未保存,请点击“文件”->“全部保存”,打开“保存项目”对话框:

通过“浏览”按钮设置“位置”,我设置的是本机G:\MDZPCK\Microsoft\MySY。
  下面点击菜单“项目”->“添加引用”,打开“添加引用”对话框:

在“.NET”选项卡中找到组件名称为nunit.framework的一项,点击“确定”按钮,此时在项目中就可以使用NUnit类库了。
三、编写用于测试的类
  用于测试的类很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。
下面开始编写,请点击菜单“项目”->“添加类”,打开“添加新项”对话框:

在该对话框中,“类”模板被默认选中,请将名称修改为Book.vb或Book.cs、Book.jsl,然后点击“添加”按钮。
  类创建后,需要修改代码,VB代码如下:
  Public Class Book
    Dim pid As String = Nothing
    Dim pname As String = Nothing

    Property id() As String
      Get
        Return pid
      End Get
      Set(ByVal Value As String)
        pid = Value
      End Set
    End Property

    Property name() As String
      Get
        Return pname
      End Get
      Set(ByVal Value As String)
        pname = Value
      End Set
    End Property
  End Class
代码比较简单,没什么可说的吧?下边是C#代码:
  using System;
  using System.Collections.Generic;
  using System.Text;

  namespace NUnitCS
  {
    public class Book
    {
      private string pid = null;
      private string pname = null;

      public string id
      {
        get
        {
          return pid;
        }

        set
        {
          pid = value;
        }
      }

      public string name
      {
        get
        {
          return pname;
        }

        set
        {
          pname = value;
        }
      }
    }
  }
也没什么可说的吧?下边是J#代码:
  package NUnitJS;

  public class Book
  {
    private String pid = null;
    private String pname = null;

    /** @property */
    public void set_id(String value)
    {
      pid = value;
    }
    /** @property */
    public String get_id()
    {
      return pid;
    }

    /** @property */
    public void set_name(String value)
    {
      pname = value;
    }
    /** @property */
    public String get_name()
    {
      return pname;
    }
  }
可以看到,J#代码与VB和C#代码有些不同,因为J#的语法是从Java演变过来的,所以其属性在定义时被拆成了set_XXX和get_XXX这样的两个方法。但仅有set_XXX和get_XXX这样的两个方法还不够,还需要使用@property指令进行说明。虽然用不用@property指令在调用时也没什么区别,但你可以尝试将变量pid和pname更名为id和name,重新编译;而后再将@property指令去掉,再重新编译。真的不一样。
至此,用于测试的类编写完成了。
四、编写测试用例
  这里只用了一个类进行测试,名为BookTest,以前这样的类可能需要继承NUnit.Framework.TestCase类,但现在只需要对该类使用TestFixture属性进行标识即可,而无须继承了。BookTest类包含两个用例,分别对应该类的testId和testName方法,即每个方法实现了一个测试用例。注意,在NUnit中,这些用来实现测试用例的方法有两种手段进行标识:一个是以testXXX的格式来命名,一个是使用Test属性进行标识。此外,BookTest还有Init和Dispose这两个方法,并分别使用SetUp和TearDown属性来进行标识,前者在每个测试方法开始之前执行,多用来做初始化;后者在每个测试方法完成之后执行,多用来清理资源。注意,这两个方法的名称并没有什么限制,但必须用SetUp和TearDown属性进行标识。另外,NUnit还提供了TestFixtureSetUp和TestFixtureTearDown属性,功能与SetUp和TearDown类似,但前者是在所有用例执行之前做初始化、之后做清理,而后者是在每个用例执行之前做初始化、之后做清理。下面开始编写BookTest。
  点击菜单“项目”->“添加类”,打开“添加新项”对话框,将名称改为BookTest.vb或BookTest.cs、BookTest.jsl,然后点击“添加”按钮创建该类。修改代码,VB代码如下:
  Imports NUnit.Framework

  <TestFixture()> _
  Public Class BookTest
    Dim bo As Book = Nothing

    <SetUp()> _
    Public Sub Init()
      Console.WriteLine("测试开始!")
      bo = New Book
      Console.WriteLine("book对象被初始化!")
    End Sub

    <Test()> _
    Public Sub testId()
      bo.id = "001" '设置id属性的值为
      '使用Assert查看id属性的值是否为

本文关键:NUnit学习笔记 VS.net 2005篇
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top