用NUnit为.NET程序做测试 ---Nunit入门

最近在学习的过程中感觉到项目测试的重要性,自己在网上学习了一番。感觉还是收获颇丰的。在此记下,希望也能为像我这样的程序员一点帮助吧。

 

我使用的是强悍的NUnit为.NET程序做测试,下载地址:http://www.nunit.org/index.php?p=download 下载最新版,然后安装。

 

接下来开始我们的开发和测试。我写的是一个简单的计算功能的类。

 

首先在VS中新建一个类库。1

添加类 Calculate.cs  代码如下:

namespace NunitTest
{
    public class Calculate
    {
        public int Add(int a,int b)
        {
            return a + b;
        }

        public int Minus(int a,int b)
        {
            return a - b;
        }

        public int Multiply(int a,int b)
        {
            return a * b;
        }

        public int Divide(int a,int b)
        {
            return a / b;
        }
    }
}
Calculate 就是我们要测试的类了。
在项目中添加测试类 CalculateTest.cs 。首先添加 NUnit.Framework.dll到项目中,
由于安装NUnit时,安装程序已经将NUnit的程序集添加到了项目的.net应用中,直接点击添加。
2 
使用NUnit测试项目,必须添加客户端属性标示,添加[TestFixture] 以表明此类是用来测试使用的。
    [TestFixture]
    public class CalculateTest
    {

    }
接下来添加测试方法:添加[Test]以表明此方法是用来测试使用的。测试方法不能有返回值,不能有参数。
    [TestFixture]
    public class CalculateTest
    {
        [Test]
        public void TestAdd()
        {
            Calculate cal = new Calculate();

            int result = cal.Add(1, 4);

            Assert.AreEqual(5, result);
        }

        [Test]
        public void TestDivide()
        {
            Calculate cal = new Calculate();

            int result = cal.Divide(3, 1);

            Assert.AreEqual(3, result);
        }
    }

 

Assert 即测试的 “断言”:在测试框架中,断言是单元测试的核心,我们在测试中要对其程序断言,如果某个断言失败,方法的调用不会返回值,并且会报告一个错误。如果一个测试包含多个断言,那些紧跟失败断言的那些断言都不会执行,因此每个测试方法最好只有一个断言。

 

启动 NUnit,FILE----Open Project

3

 

NunitTest .dll添加进去。

4 

我们可以看到我们添加的两个测试方法。TestAdd和TestDivide。点击 Run 开始测试

 

 

 

5

全部变成绿色表示测试通过。

 

但是大家有没有想到,测试的除法 TestDivide()有除数为零的情况。我们在程序中没有做任何判断,我们直接Return了结果。

我们更改一下测试类

        [Test]
        public void TestDivide()
        {
            Calculate cal = new Calculate();

            int result = cal.Divide(3, 0);

            Assert.AreEqual(3, result);
        }

运行 NUnit,6

 

虽然我们这里的运算很简单,但是遇到复杂的情况这个测试就很有必要了。

        [Test]
        [ExpectedException(typeof(DivideByZeroException))]
        public void TestDivide()
        {
            Calculate cal = new Calculate();

            int result = cal.Divide(3, 0);

            Assert.AreEqual(3, result);
        }
 
[ExpectedException(typeof(DivideByZeroException))] 表示这个测试类我期望抛出一个除数不能为零的异常。
 
再次运行 NUnit,测试通过。7 

  
  
原创动力

  
  

作者: 鹏鹏_Lovley
出处: http://blog.csdn.net/dupeng0811
本文版权归作者和CSDN共有,欢迎转载,请在文章页面明给出原文连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值