1. ホーム
  2. c#

デフォルトのコンストラクタではなく、TestFixtureSetUp 属性を使うのはいつですか?

2023-09-04 08:21:48

質問

NUnitのドキュメントには、メソッドに TestFixtureSetup を使うべきなのか、コンストラクタで設定を行うべきなのか、NUnitのドキュメントでは教えてくれません。

public class MyTest
{
    private MyClass myClass;

    public MyTest()
    {
        myClass = new MyClass();
    }

    [TestFixtureSetUp]
    public void Init()
    {
        myClass = new MyClass();
    }
}

について、良い習慣/悪い習慣はありますか? TestFixtureSetup とデフォルトのコンストラクタの違いはありますか?

どのように解決するのですか?

これは、nUnitチームによって対処されていない問題の1つであると思います。しかし、優れた xUnit プロジェクト はこの問題を正確に把握し、コンストラクタを使うのは良いことだと判断しました。 テストフィクスチャの初期化 .

nunit では、この場合の私のベストプラクティスは TestFixtureSetUp , TestFixtureTearDown , SetUp そして TearDown メソッドと同じように、ドキュメントで説明されています。

nUnitのテストフィクスチャを通常のクラスとして考えないことも、その構成で定義しているときに私を助けてくれると思います。私はそれらをフィクスチャと考え、それによって精神的なハードルを乗り越え、この問題を見過ごすことができるようになりました。