图解在VS2005利用NUnit进行测试

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

二、开发

NUnit的运行界面
利用NUnit进行开发之前,需要先添加类库引用,如下图:

添加对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的人可能对上面的代码有些地方感到陌生,因为NUnit通过反射来获取程序中的相关信息,从而得知哪些类中的哪些方法需要进行测试,所以有必要对NUnit的一些常用属性进行了解:
TestFixture属性:用来标识类,表示这个可能包含有用于测试的方法。
Test属性:用来标识方法,表示这个方法需要进行测试(前提是该方法所在的类是可以测试的)。
SetUp属性:用来标识方法,在开始所有测试之前执行,用来在测试前初始化一些资源,比如初始化类。
TearDown属性:用来标识方法,在所有测试完成之后执行,用来释放一些资源。
Ignore属性:用来标识方法,指示这个方法由于某些原因暂时不需要测试(比如没有完成相关代码)。

你可能感兴趣的:(.net,单元测试,J#)