您的位置:首页 > 其它

一个 30多岁的技术人员所要考虑的

2008-03-27 13:24 351 查看
一、介绍
NUnit是一款用于在.net环境进行单元测试的工具,它的官方网站是:http://www.nunit.org,需要了解历史和下载最新版本的朋友可以去官方网站下载,目前最新版本是2.4.6了,提供msi安装文件和压缩包形式下载,并且支持.net1.1和.net2.0,如下图:



NUnit的运行界面如下:



NUnit运行界面



NUnit测试结果界面

在上图中我们可以看到红、绿、黄三种颜色,分别代表了测试结果,它们的意义如下:
绿色 描述目前所执行的测试都通过
黄色 意味某些测试忽略,但是这里没有失败
红色 表示有失败

二、编码测试
下载了相关文件之后,需要添加对NUnit.framework.dll这个类库的引用,如下图:



程序相关代码

using System;
using System.Collections.Generic;
using System.Text;

namespace NUnitDemo
{
/// <summary>
/// 说明:这是一个类,用于测试。
/// 作者:周公
/// 日期:2007-3-27
/// 原文出处:http://blog.csdn.net/zhoufoxcn
/// </summary>
public class Person
{
private int personId;
private string name;
private DateTime birthday;
/// <summary>
/// 生日
/// </summary>
public DateTime Birthday
{
get { return birthday; }
set { birthday = value; }
}

/// <summary>
/// 姓名
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}

/// <summary>
/// 编号
/// </summary>
public int PersonId
{
get { return personId; }
set { personId = value; }
}

}
}

用于测试的类:

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;

namespace NUnitDemo
{
[TestFixture]
/// <summary>
/// 说明:这是一个测试类,用来展示NUnit的用法。
/// 作者:周公
/// 日期:2007-3-27
/// 原文出处:http://blog.csdn.net/zhoufoxcn
/// </summary>
public class Test
{
Person p = new Person();
public Test()
{
}
[Test]
public void CheckPersonId()
{
Assert.AreEqual(p.PersonId, 0);//检查对值类型数据未明确赋值之前是不是为0
}
[Test]
public void CheckPersonNameNull()
{
Assert.AreEqual(p.Name, null);//检查对字符串类型数据未明确赋值之前是不是为null
}
[Test]
public void CheckPeronBirthday()
{
Assert.AreEqual(p.Birthday, DateTime.MinValue);//检查对日期时间类型数据未明确赋值之前是不是为DateTime.MinValue
}

[Test]
public void CheckSum()
{
int i = 2, j = 6;
int num = 2 + 6;
Assert.AreEqual(num, 9);
}
[Test]
[Ignore("忽略的原因")]
public void CheckClassType()
{
Assert.IsInstanceOfType(typeof(object), p);
}
}
}

看过上面的代码,大家或许会发现一些与平时所写代码不同的地方,就是在Test的头部加了多了一个属性声明([TestFixture]),并且有些方法还有"[Test]"这样的属性,NUnit就是通过这些属性知道你的程序中的哪些类中的哪些方法需要测试的,NUnit的一些常用属性如下:
Test Fixture:标记一个类可能包含有需要测试的方法。
Test :表示一个方法是用来测试的(当前前提是这个已经标记为需要测试)。
SetUp:在开始测试之前初始化一些资源,比如打开文件或者初始化数据库连接。
TearDown:在测试完之后做的事情,比如关闭文件或者关闭数据库连接。
ExpectedException:表示这个测试会抛出一个异常,如果测试时没有抛出异常,则测试失败。
Ignore:表示在测试时忽略对这个方法的测试(比如这个方法还没有完成或者完善),测试的时候这个方法会以黄色表示。
具体更多属性用法请到官方网址查看:http://www.nunit.org/index.php?p=attributes&r=2.4.6或者查看下载的文档,位于doc目录下的attributes.html文件。

三、集成到VS2005中
如果每次测试都要找到nunit.exe程序,再通过【File】->【Open Project】方式,还要一步步打开需要测试的程序集文件,确实太费力费时,通过下面的办法我们可以像编译运行WinForn程序一样很方便的测试。
首先打开项目的属性选项,如下图:



然后打开调试选项卡,如下图:



通过如上设置以后,每次要启动测试,我们可以直接按F5或者点击VS2005工具栏上的调试运行按钮就可以启动NUnit来启动我们的测试了,我们只要点击NUnit的【Run】按钮就可以启动测试了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: