NUnit使用基础

来源:互联网 发布:手机视频直播系统源码 编辑:程序博客网 时间:2024/05/16 14:56

NUnit使用基础
TDD开发变得越来越流行,这里写关于NUnit的一些基本使用。

1、下载NUnit地址:http://www.nunit.org/downloads/NUnit-2.2.0.msi
2、安装NUnit后,组件会自动安装到GAC中,所以可以在直接在组件引用中添加,当然也可以直接引用该文件C:/Program Files/NUnit 2.2/bin/nunit.framework.dll
3、为了在调试中直接启用NUnit,要在测试用例所在的项目进行设置。在项目属性中设置调试模式为“程序”,设置启动应用程序为“C:/Program Files/NUnit 2.2/bin/nunit-gui.exe”,这样每次调试测试用例时都会自动启动NUnit的图形界面了。
4、基本使用,这里我设计了一个简单的例子,是关于Flags的使用的,使用Flags定义的枚举可以方便实现一些简单的权限管理。
5. 这时安装的为英文版的。如果要使用中文版的,可以下载一个中文版的。自制到C:/Program Files/NUnit 2.4.7的目录下。


using System;
using NUnit.Framework;

namespace RuiYa.Test
{
    [TestFixture]
    [Category("Flags用法测试")]
    public class NUnitDemo
    {
        private TestType test;

        public NUnitDemo(){}

        [SetUp]
        public void RuiYaSetUp()
        {
            test = Add(test, TestType.View);
            Assert.AreEqual("View", test.ToString());
        }

        [TearDown]
        public void RuiYaTearDown()
        {
            test = Remove(test, TestType.View, TestType.Edit, TestType.Delete, TestType.Create);
            Assert.AreEqual("0", test.ToString());
        }

        [Test]
        public void TestEnum()
        {
            Assert.AreEqual("View", test.ToString());

            test = Add(test, TestType.Edit, TestType.Delete);
            Assert.AreEqual("View, Edit, Delete", test.ToString());
        }

        private TestType Add(TestType source, params TestType[] testTypes)
        {
            if((testTypes != null) && testTypes.Length > 0)
            {
                foreach(TestType tt in testTypes)
                {
                    source |= (TestType)tt;
                }
            }

            return source;
        }

        private TestType Remove(TestType source, params TestType[] testTypes)
        {
            if((testTypes != null) && testTypes.Length > 0)
            {
                foreach(TestType tt in testTypes)
                {
                    source = source & (~tt);
                }
            }

            return source;
        }

    }

    [Flags]
    public enum TestType : int
    {
        View        = 1,
        Edit        = 2,
        Delete        = 4,
        Create        = 8,
    }
}
#  如果要对某个测试用例类进行测试,则必须为这个类添加[TestFixture]属性
#  使用[Category]属性,可以把这个测试加入某个测试种类中,凡是属于某个测试种类的测试均可以集中一起进行测试,这个[Category]属性不只是可以添加到类上,也可以添加到方法上,这样可以单独把某个方法加入到某个测试种类中。
#  使用[SetUp]属性标记的方法,是在测试前期对测试环境进行初始化,而[TearDown]则在测试结束后运行,提供机会还原到测试前的状态。
#  使用[Test]属性,则是真正需要进行测试的方法,具体的测试都是写在这一个个的方法体内。
#Assert是主要的断言类,其中提供很多方法帮助我们对代码进行测试
 

原创粉丝点击