下载截图

二、
添加对NUnit.framework.dll的引用

然后编写代码

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

namespace NUnitDemo
{
    
/// <summary>
    
/// 说明:这是一个类,用于测试。
    
/// </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的用法。
    
/// </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);
        }
    }
}

第一次使用NUnit的人可能对上面的代码有些资源,比如初始化类。
TearDown属性:用来标识方法,在所有测试完成之后执行,用来释放一些资源。
Ignore属性:用来标识方法,指示这个方法由于某些原因暂时不需要测试(比如没有完成相关代码)。

更多其它属性的介绍请查阅随同方法必须不带任何参数,并且不返回任何参数,同时也必须是public的。

程序代码:

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

namespace NUnitDemo
{
    
/// <summary>
    
/// 说明:这是一个类,用于测试。
    
/// </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>
   
/// </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);
        }
    }
}

运行nunit.exe(图形化方式,如果想利用控制台方式请运行nunit-console.exe),通过【File】->【Open Project】方式打开生成的程序文件,然后点【Run】按钮运行测试,测试上面的代码结果如下:

图解在VS2005利用NUnit进行测试

我们可以看到用于测试方法有三种颜色,这三种颜色指示了测试的结果:
绿色:标识测试通过
黄色:标识忽略了测试这个方法 
红色:标识测试失败

三、集成到Vs2005

如果每次测试都要先编译程序,再打开NUnit.exe,找到生成的文件测试,这样太费时也太费事了,下面讲怎么集成到Vs2005中。

首先打开项目属性,如下图:

图解在VS2005利用NUnit进行测试
接着打开【设置选】项卡,进行设置:

图解在VS2005利用NUnit进行测试
通过以上设置,我们每次按F5或者调试运行项目的时候就自动启动NUnit.exe并且加载生成的文件,只需要点击【Run】就可以测试了。相当方便。

相关文章: