DotNet开发工具系列之一Nunit

经常在网上看到大家都有提到过NUNIT这个单元测试工具.觉得这个工具功能很强.但苦于介绍这方面入门的资料太少,只是把它里面的一个列子贴出来,刚开始用的时候摸不着头脑.我在这里把我的学习过程共享一下,希望对想学习这方面知识的同仁有所帮助.
先是找到这个软件安装,这个大家都会哦,去Google上找就可以了.
打开VS开发环境.
新建一个类.这里我还以大家通常讲到的售火车票为例:
把 NUnit.Framework文件引用进来.
 using System;
 using NUnit.Framework;
 

 namespace NunitTest
 {
  /// <summary>
  /// Ticket 的摘要描述。
  /// </summary>
  public class Ticket
  {
   private int _amount;

   public Ticket()
   {
    //
    // TODO: 在此加入建構函式的程式碼
    //
   }

   public int Amount
   {
    get {return _amount;}   
   }

   public void sell()
   {
    if (_amount-1 < 0)
     throw new Exception("NO");
    _amount -=1;
   }
  
   public void add(int num)
   {
    _amount +=num;

   }
  }
}
上面是一个有关售火车票的类.
有两个方法,一个是ADD.一个是SELL.这两个方法的作用分别是ADD为加入火车票.SELL为出售火车票.
在调用ADD的时候我们要让它的数量增加.在出售的时候要让火车票减少.
在这里我们的逻辑就体现出来了.
但是现在我们要知道它是不是每作一次操作真的是正确呢,如果不是测试类的话我们就要新建一个实例去验证它,这无形中就增加了我们的工作量.
于是我们想到用NUNIT这个单元测试工具来测试它是否正确.
现在我们来写一个测试类来验证:
[TestFixture]
  public class TicketTest
  {
   public TicketTest()
   {
    
   }

   private Ticket t;

   [TestFixtureSetUp]

   public void initt()
   {
    t = new Ticket();
    t.add(3);
   }

   [Test]
   public void add()
   {
    Assert.AreEqual(3,t.Amount);
   }

   [Ignore("Ignore this void")]
   public void sell()
   {
    t.sell();
    Assert.AreEqual(0,t.Amount);
   }
       
   [Test]
   [ExpectedException(typeof(Exception))]
   public void ExcpetionTesting()
   {
    t.sell();
    t.sell();
    t.sell();
    t.sell();
    Assert.AreEqual(0,t.Amount);
   }
  }
编译后就可以进行测试了,
打开NUNIT界面如下:


通过File菜单打开刚刚编译的那个DLL文件.按下RUN就可以看到如下结果了.

绿色就表是能过了,如果是红色就表示这个类写得有问题.大家可以改动一些东东然后测试看是否正确.
欢迎大家扔砖头,希望对那些想开始用这个东东的兄弟有所帮助
[TestFixture]
这个属性表是这个类是一个测试类.也就是说如果我们要测试某一个类的话,就在这个类的上面加这个属性.这个属性是要引用了NUnit.Framework才有的.
[Test]
表示这个方法是一个测试方法.
[Ignore("Ignore this void")]
表示忽略这个方法,不对它进行测试
 [TestFixtureSetUp]
表示在开始测试这个类的时候就运行这个方法.也可以说是进行一些类的初始化工作
 [TestFixtureTearDown]
表示在测试结束的时候运行这个方法.可以做一些资源释放的操作.
[SetUp]
表示在每个测试方法开始之前都运行这个方法
[TearDown]
表示在每个测试方法结束的时候都运行这个方法.
[Test]
   [ExpectedException(typeof(Exception))]
这两个属性一起使用就是测试是否有正常的异常触发.
以上讲的是几个NUNIT的几个属性.这些都是放在要测试或是要运行的方法之前的.
用得较多的方法就是Assert.AreEqual这是用来比较两个对象或值是否相等.
还有一些其它的方法,在这里先讲这几个东东,
欢迎大家一起讨论
下面是这个测试类的全部源码
 using System;
 using NUnit.Framework;
 

 namespace NunitTest
 {
  /// <summary>
  /// Ticket 的摘要描述。
  /// </summary>
  public class Ticket
  {
   private int _amount;

   public Ticket()
   {
    //
    // TODO: 在此加入建構函式的程式碼
    //
   }

   public int Amount
   {
    get {return _amount;}   
   }

   public void sell()
   {
    if (_amount-1 < 0)
     throw new Exception("NO");
    _amount -=1;
   }
  
   public void add(int num)
   {
    _amount +=num;

   }
  }
  
  [TestFixture]
  public class TicketTest
  {
   public TicketTest()
   {
    
   }

   public Ticket t;

   [TestFixtureSetUp]

   public void initt()
   {
    t = new Ticket();
    t.add(3);
   }

   [Test]
   public void add()
   {
    Assert.AreEqual(3,t.Amount);
   }

   [Ignore("Ignore this void")]
   public void sell()
   {
    t.sell();
    Assert.AreEqual(0,t.Amount);
   }
       
   [Test]
   [ExpectedException(typeof(Exception))]
   public void ExcpetionTesting()
   {
    t.sell();
    t.sell();
    t.sell();
    t.sell();
    Assert.AreEqual(0,t.Amount);
   }
  }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值