NUnit的测试方法与VS中启用它来调试

VS中加入单元测试框架:

右键项目“属性“来到“调试”

启动操作,选择“启动外部程序”选择NUnit程序

C:\Program Files\NUnit 2.5.9\bin\net-2.0\nunit.exe

这样就可以在生成的时候,自动启用NUnit进行调试

 

 

Not a Test Assembly

The assembly was not built with any known testing framework

 

出现上述这种错误,确认有没有加载using NUnit.Framework;

 

using NUnit.Framework;

namespace NUnitTest

{

    [TestFixture]

    public class Class1

    {

        [Test]

        public void Add()

        {

            int a = 1;

            int b = 2;

            int sum = a + b;

            Assert.AreEqual(sum, 3);

        }

    }

}

标识类的特性为TestFixture,以及方法的特性标识为Test这样就可以测试了,其中Assert是进行测验的一个类,里面有许多的静态方法。

当然不标识类的特性也可以测试,不标识方法的特性,调试的时候就不出现。

 

测试的效果图:

如果把上面重复的公用,怎么做呢,如下:

private int a;

private int b;

[SetUp]

public void InitializeOperands()

{

a = 1;

b = 2;

}

使用SetUp来标识即可。

如果想忽略这个方法

添加[Ignore]特性,这个方法还是会显示,只是会忽略测试,进度条是黄色的。

 

其他的一些方法

TestFixtureSetUp打开数据库连接,数据共享

TestFixtureTearDown关闭数据库连接数据共享

SetUpTearDown

[Category("加法")]把一些方法分组。

异常的捕获

[ExpectedException(typeof(DivideByZeroException))]

        public void DivideByZero()

        {

            int zero = 0;

            int result = a / zero;

            Assert.Fail("Exception");

        }

如果存在异常就通过,所以上面这个通过测试。

如果修改为[ExpectedException(typeof(InvalidOperationException))]

那么就会报错,尝试除以0,这是不允许的。

 

 

好了,综合演示一下

namespace NUnitTest

{

    [TestFixture]

    public class Class1

    {

        [TestFixtureSetUp]

        public void FixtureSetUp()

        {

            Console.Out.WriteLine("FixtureSetUp");

        }

        [TestFixtureTearDown]

        public void FixtureTearDown()

        {

            Console.Out.WriteLine("FixtureTearDown");

        }

        [SetUp]

        public void SetUp()

        {

            Console.Out.WriteLine("SetUp");

        }

        [TearDown]

        public void TearDown()

        {

            Console.Out.WriteLine("TearDown");

        }

        [Test]

        public void Test1()

        {

            Console.Out.WriteLine("Test 1");

        }

        [Test]

        public void Test2()

        {

            Console.Out.WriteLine("Test 2");

        }

    }

}

 

运行结果:

FixtureSetUp

***** NUnitTest.Class1.Test1

SetUp

Test 1

TearDown

***** NUnitTest.Class1.Test2

SetUp

Test 2

TearDown

FixtureTearDown

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值