Nunit常用属性

1.TestFixture

    标记包含测试的类。该类的特征:(1)必须是public,否则NUnit找不到它;(2)必须有缺省的构造函数,否则NUnit不会构造它;(3)构造函数没有任何副作用,因为NUnit经常多次构造它。

[TestFixture]
public class Tests
{        
}

2.Test

   标记测试函数。该函数的特征:1)必须是public;(2)没有参数;(3)没有返回值。

[TestFixture]
    public class Tests
    {
        [Test]
        public void AddTwoNum()
        {
            int a = 1;
            int b = 2;
            int result= a + b;
            Assert.AreEqual(result, 3);
        }      
    }

3.SetUp

    标记函数,该函数在每个测试函数执行之前都要执行。一般是资源初始化函数。

4.TearDown

    标记函数,该函数在每个测试函数执行之后都要执行。一般是资源清除函数。

[TestFixture]
public class Tests
{
    private int a; 
    private int b;
    private int result;
    [SetUp] 
    public void Init()
    { 
        a = 1; 
        b = 2; 
    }

    [Test]
    public void AddTwoNum()
    {
        result = a + b;
        Assert.AreEqual(result, 3);
    }

    [Test]
    public void MultiplyTwoNum()
    {
        result = a * b;
        Assert.AreEqual(result, 2);
    }

    [TearDown]
    public void Clear()
    {
        result = 0;
    }
}

5.ExpectedException

   期望在运行时抛出一个期望的异常,如果是,则测试通过,否则不通过。如除0时会抛出异常。

[Test]
[ExpectedException(typeof(DivideByZeroException))]
public void DivideByZero()
{
   int zero = 0;
   int infinity = a/zero;
  Assert.Fail("Should have gotten an exception");
}

6.Ignore 

   运行时忽略的测试。Ignore属性可以附加到测试方法,也可以附加到整个测试类

[Test]
[Ignore("Method is ignored")]
public void MultiplyTwoNum()
{
    result = a * b;
    Assert.AreEqual(result, 2);
}

7.Category

   将测试分类,便于按类别运行测试。

[Test]
[Category("Calculator")]
public void MultiplyTwoNum()
{
    result = a * b;
    Assert.AreEqual(result, 2);
}

8.Explicit

   忽略一个测试类或测试方法,直到它们显式的选择执行。

[Test, Explicit]
public void MultiplyTwoNum()
{
    result = a * b;
    Assert.AreEqual(result, 2);
}

9.TestCase

   标记有参数的测试方法。下例中1,2分别为参数a和b的值。

[TestCase(1,2)]
public void AddTwoNum(int a, int b)
{
    int result = a + b;
    Assert.AreEqual(result, 3);
}

10.Maxtime

   标记测试用例的最大执行时间,超时时报错但不取消测试。

[Test]
[MaxTime(100)]
public void AddTwoNum()
{
    int a = 1;
    int b = 2;
    int result = a + b;
    Assert.AreEqual(result, 3);
}

11.Timeout

    标记测试用例的超时时间,超时中断测试。

[Test]
[Timeout(100)]
public void AddTwoNum()
{
    int a = 1;
    int b = 2;
    int result = a + b;
    Assert.AreEqual(result, 3);
}

12.Repeat

   标记测试方法重复执行的次数。

[Test,Repeat(5)]
public void AddTwoNum()
{
    int a = 1;
    int b = 2;
    int result = a + b;
    Assert.AreEqual(result, 3);
}

 

你可能感兴趣的:(测试艺术,TestFixture,SetUp,TearDown,Category)