nunit特性

3140 ワード

[TestFixture(arguments)]属性タグクラスはテストクラスであり、パラメータが記入されていない場合は、テストクラスに無パラメトリック関数が含まれている必要があります.そうしないと、対応するパラメトリック関数が必要です.複数のテスト[TestFixture(1),TestFixture("a")][Test]属性タグメソッドをテストメソッドとして、Descriptionパラメータを追加することで、テストの機能に記述情報を追加することもできます.
[TestCase(arguments)]属性タグにパラメータの戻り値がない方法はテスト方法(汎用方法同様タグ)であり,複数回テストするにはカンマで区切ることができる([TestCase(1,2),TestCase(2,3)]).
[TestCase(arguments,Result=value)属性タグバンドパラメータと戻り値のメソッドはテストメソッドであり,実行時に予想される戻り値もNUnitに伝え,戻り値が間違っていればテストも同様に通過できない.
[Suite](テストキット、属性とインデックスタグのみ有効):複数のテストクラスを組み合わせて複数のテストを同時に実行できます.このバージョンの開発者の1つの信念は、これを減らすために[Category]を使用することができます.
[Explicit]属性タグのテスト方法はUIインタフェースで明示的に実行する必要があり、ある方法に対してユニットテストを行いたくない場合、選択された場合にのみテストを行う場合は、この特性を呼び出すことができます.
[Ignore]プロパティには、テストメソッドまたはテストクラスが無視され、テストクラスが無視されると、その内部のテストメソッドも無視されます.
[ExpectedException(Type)]プロパティタグテスト方法は、実行時に所望の異常を投げ出し、もしそうであればテストに合格し、そうでなければ合格しない.
[Category("")]属性タグは、テストを分類(必要なカテゴリのみをテストするのに便利)するために使用され、メソッドとクラスにタグを付け、NUnit-GUIインタフェースのCategoriesタブにテストする種類を追加し、Runの場合はそのカテゴリのテストのみをテストします.
[TestFixtureSetUp]属性タグ方法はクラスレベル設定(初期化)方法であり、テストクラス全体で一度初期化を行い、すべてのテスト方法で初期化データを共有する.
[TestFixtureTearDown]属性マーク方法はクラスレベルの取り外し方法であり、テストクラス全体で一回の取り外しを行う.テストクラス内のすべてのテストメソッドの実行が完了すると、データを消去し、リソースを解放するための取り外しメソッドが実行されます.
[TearDown]属性タグ方法は関数レベルの取り外し方法であり,各テスト方法を実行した後にその取り外し方法を実行する.1つのテストクラスには、TearDown/Setup/TestFixtureSetUp/TestFixtureTearDownメソッドが1つしかありません.複数の定義がある場合、テストクラスもコンパイルに成功しますが、これらのタグ付けメソッドはテスト時に実行されません.
[SetUp]属性タグ方法は、関数レベルの設定方法であり、各試験方法を実行する前に、この設定方法を実行する.
Runを実行するたびに、newの新しいインスタンスがテストされます.
[Maxtime]/[Timeout]属性タグテスト用例の最大実行時間は、前者がタイムアウトしたときにテストをキャンセルしないが、後者は強制的に中断し、使い方は[Test,Maxtime(2000)],[Test,Timeout(2000)]である.
[Repeat]プロパティタグのテスト方法は、[Test,Repeat(100)]のように何回繰り返し実行されますか.
[RequiresMTA]/[RequiresSTA]/[RequiresThread]プロパティタグテスト例は、マルチスレッド、シングルスレッド、独立したスレッドの状態で実行する必要があります.
[Values]属性はテスト例のパラメータをマークし、パラメータの形で値のセットを入力し、NUnitはこのセットの値を対応する数のサブテストに分解します.テスト用例の2つのパラメータが[Values]を使用してタグ付けされる場合、NUnitはデフォルトで2組の数の積を生成する用例を生成し、[Sequential]タグテスト用例を使用して順番に対応するn(n=2組の最大配列長)サブテスト用例を生成する必要がある.
[ValueSource]プロパティタグテスト用例のパラメータで、パラメータのデータソースがどこから来たかを指定します.[ValueSource]を使用してデータソースを指定する場合、このデータソースはIEnumerableインタフェースを実装する必要があります.データソースはプロパティ、パラメータレス、インスタンス、または静的メンバーです.
using System;
using NUnit.Framework;
[TestFixture]
public class LifeCycleContractFixture
{
    [TestFixtureSetUp]
    public void FixtureSetUp()
    {
        Console.Out.WriteLine("FixtureSetUp");
    }
    [TestFixtureTearDown]
    public void FixtureTearDown()
    {
        Console.Out.WriteLine("FixtureTearDown");
    }
    [SetUp]
    public void SetUp()
    {
        Console.Out.WriteLine("SetUp");
    }
    [TearDown]
    public void TearDown()
    {
        Console.Out.WriteLine("TearDown");
    }
    [Test]
    public void Test1()
    {
        Console.Out.WriteLine("Test 1");
    }
    [Test]
    public void Test2()
    {
        Console.Out.WriteLine("Test 2");
    }
}
 :
        FixtureSetUp
        SetUp
        Test 1
        TearDown
        SetUp
        Test 2
        TearDown
        FixtureTearDown