NUnit详细使用方法四

发表于:2012-01-11来源:未知作者:娃娃点击数: 标签:nunit
4.其他的一些核心概念 上面的例子介绍了基本的NUnit特性和功能. TestFixture, Test, 和 Assert是3个最基本的特征,我们可以用这些特性进行程序员测试了.但是有的时候,你觉得这3个远远不够,比如有的时候打开一个数据库连接多次,有没有只让它打开一次

  4.其他的一些核心概念

  上面的例子介绍了基本的NUnit特性和功能. TestFixture, Test, 和 Assert是3个最基本的特征,我们可以用这些特性进行程序员测试了.但是有的时候,你觉得这3个远远不够,比如有的时候打开一个数据库连接多次,有没有只让它打开一次的方法呢?如果我想把测试分类,应该怎样实现呢?如果我想忽略某些测试,又应该如何去完成呢?不用担心,NUnit已经有这样的功能了.

  下面我们一一作出回答.

  SetUp/TearDown 属性

  在早期给的test fixture定义里,我们说test fixture的测试是一组常规运行时资源.在测试完成之后,或是在测试执行种,或是释放或清除之前,这些常规运行时资源在一确定的方式上可能需要获取和初始化.NUnit使用2个额外的属性:SetUp 和TearDown,就支持这种常规的初始化/清除.我们上面的例子来描述这个功能.让我们增加乘法.

  using System;

using NUnit.Framework;
namespace NUnitQuickStart

  {

  [TestFixture]

  public class NumersFixture

  {

  [Test]

  public void AddTwoNumbers()

  {

  int a=1;

  int b=2;

  int sum=a+b;

  Assert.AreEqual(sum,3);

  }

  [Test]

  public void MultiplyTwoNumbers()

  {

  int a = 1;

  int b = 2;

  int product = a * b;

  Assert.AreEqual(2, product);

  }

  }

  }

  我们仔细一看,不对,有重复的代码,如何去除重复的代码呢?我们可以提取这些代码到一个独立的方法,然后标志这个方法为SetUp 属性,这样2个测试方法可以共享对操作数的初始化了,这里是改动后的代码:

  using System;

using NUnit.Framework;
namespace NUnitQuickStart

  {

  [TestFixture]

  public class NumersFixture

  {

  private int a;

  private int b;

  [SetUp]

  public void InitializeOperands()

  {

  a = 1;

  b = 2;

  }

  [Test]

  public void AddTwoNumbers()

  {

  int sum=a+b;

  Assert.AreEqual(sum,3);

  }

  [Test]

  public void MultiplyTwoNumbers()

原文转自:http://www.ltesting.net