软件测试之nunit使用步骤

发表于:2009-03-30来源:作者:点击数: 标签:软件测试nunitNUnitNunit
本文讲述了如何用 NUnit 书写和组织测试代码的步骤。 简单的Test Case 书写 软件测试 代码的步骤: 1. 创建TestCase的一个实例; 2. Override方法RunTest(); 3. 如要检查某值,则调用Assert。 例如,测试“两个Money对象之和与包含它们之和的对象相等

本文讲述了如何用NUnit书写和组织测试代码的步骤。

简单的Test Case
书写软件测试代码的步骤:

1.  创建TestCase的一个实例;

2.  Override方法RunTest();

3.  如要检查某值,则调用Assert。

例如,测试“两个Money对象之和与包含它们之和的对象相等”的测试代码如下:

public void TestSimpleAdd() {

    Money m12CHF= new Money(12, "CHF");

    Money m14CHF= new Money(14, "CHF");

    Money expected= new Money(26, "CHF");

    Money result= m12CHF.Add(m14CHF);

    Assert(expected.Equals(result));

}

如果要写的测试与以前写的测试非常像,那么就写一个Fixture来代替。如果想在一个测试中运行更多的东西,就创建一个Suite。

Fixture
如果有两个或两个以上的测试作用于相同或类似的对象集,我们该怎么办呢?测试作用于一个已知的对象集,这个对象集被称为fixture。一般建立这个fixture的时间比实际测试的时间多得多。

       当有个公共的fixture时,我们可以这么做:

1.  创建TestCase的子类。

2.  为fixture的每部分加入一个实例变量。

3.  Override SetUp()初始化这些变量。

4.  Override TearDown()释放任何在SetUp中分配的永久资源。

例如,编写用来与12 Swiss Francs,14 Swiss Francs和28 US Dollars不同组合一起工作的TestCase时,首先创建一个fixture:

public class MoneyTest: TestCase {

    private Money f12CHF;

    private Money f14CHF;

    private Money f28USD;

   

    protected override void SetUp() {

        f12CHF= new Money(12, "CHF");

        f14CHF= new Money(14, "CHF");

        f28USD= new Money(28, "USD");

    }

}

一旦准备好Fixture,就可书写任意多的测试用例

Test Case
当有一个Fixture如何书写和调用一个独立的Test Case呢?书写一个没有的fixture测试用例是非常简单的——只需在TestCase 的一个子类中override RunTest。为一个Fixture书写测试用例是同样的方法,通过为set up代码制造一个TestCase的子类,然后为每个独立的测试用例制造不同的子类。然而,不久你就会注意到这些代码中的大部分成为了语法的牺牲品。

NUnit为书写一个基于Fixture的测试提供了简明的方法:

1.  在fixture类中书写一个public的测试方法。在此,必须确保这个方法是public的,否则它将不能通过reflection被调用。

2.  创建这个TestCase的一个实例,并把这个测试方法的名字传给它的constructor。

例如,测试一个Money对象与另一个MoneyBag的和:

public void TestMoneyMoneyBag() {

    // [12 CHF] + [14 CHF] + [28 USD] == {[26 CHF][28 USD]}

    Money bag[]= { new Money(26, "CHF"), new Money(28, "USD") };

    MoneyBag expected= new MoneyBag(bag);

   

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