NUnit使用

来源:互联网 发布:青牛软件 编辑:程序博客网 时间:2024/05/01 12:49
测试步骤

1. 编写待测试类框架

2. 编写测试程序(using NUnit.Framework)

3. 完成待测试类代码

4. 运行NUnit程序,加入编译后的待测试类程序(dll, exe etc)

详细说明

1. 编写待测试类框架

using System;

namespace TestNUnit
{
 /// <summary>
 /// Ticket 的摘要说明。
 /// </summary>
 public class Ticket
 {

  private int amount;

  public Ticket()
  {
   amount = 0;
  }

  public int Amount
  {
   get
   {
    return amount;
   }
  }

  public void Add(int num)
  {
  }

  public void sell()
  {
  }

 }
}

说明:根据xp的思想,单元测试案例应该在代码编写之前完成,但类框架是必须的。我可以用Rose等辅助设计工具进行类的设计,然后生成类框架。在类设计时,就已经应该考虑到测试代码如何生成。

2. 编写测试程序(using NUnit.Framework)

using System;
using NUnit.Framework;

namespace TestNUnit
{
 /// <summary>
 /// TicketTest 的摘要说明。
 /// </summary>
 [TestFixture]
 public class TicketTest
 {
  public TicketTest()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  [Test]
  public void Add()
  {
   Ticket ticket = new Ticket();
   ticket.Add(80);
   Assert.AreEqual(80, ticket.Amount);
   
   //Assertion.AssertEquals(80, ticket.Amount);

  }

  [Test]
  public void Sell()
  {
   Ticket ticket = new Ticket();
   ticket.Add(29);
   ticket.sell();
   ticket.sell();
   ticket.sell();
   Assert.AreEqual(26, ticket.Amount);

  }

  [Test]
  [ExpectedException(typeof(Exception))]
  public void ExcpetionTesting()
  {
   Ticket ticket = new Ticket();
   ticket.Add(3);
   ticket.sell();
   ticket.sell();
   ticket.sell();
   ticket.sell();
  }


 }
}


说明:与java中不同,测试类并没有继承自TestCase,而只是加入了些空间说明

[TestFixture] 测试类

[Test] 测试函数

[ExpectedException(typeof(Exception))] 测试异常

关于函数前面加[]的用处我还是不太明白,xUnit中有多少种测试我也是不太明白。这些要去补

3. 完成待测试类代码

using System;

namespace TestNUnit
{
 /// <summary>
 /// Ticket 的摘要说明。
 /// </summary>
 public class Ticket
 {

  private int amount;

  public Ticket()
  {
   amount = 0;
  }

  public int Amount
  {
   get
   {
    return amount;
   }
  }

  public void Add(int num)
  {
   amount += num;
  }

  public void sell()
  {
   amount -= 1;
   if (amount < 0)
   {
    amount = 0;
    throw new Exception("Amount 不能为0");
   }
  }

 }
}

4. 运行NUnit程序,加入编译后的待测试类程序(dll, exe etc)

  与java中的测试方式不同(程序执行方法不一样),java用java命令执行特定类,jbuilder更集成了JUnit,可以在IDE中使用。
windows程序当然是直接打开了。选择要测试的exe或dll等。点Run即可。All grenn is OK!

 

总结

  在项目中如何才能保证更准确的测试,在案例编写,程序设计时都要仔细思想。而xunit的更详细使用要进一步挖掘

网络资源参考

  
http://www.microsoft.com/china/community/Column/59.mspx

 

原创粉丝点击