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);
}