xUnit 1.9 を使用して、リソースへの同じ接続をすべて共有する一連のテスト ケースを実行していますが、それらは 3 つの異なるカテゴリに分類され、接続が 3 つの異なる状態になる必要があります。
接続を処理する 1 つのフィクスチャ クラスと、3 つの異なる接続状態を必要とする 3 つのカテゴリのテスト ケースを保持する 3 つの異なるクラスを作成しました。
ここで、フィクスチャ オブジェクトが 1 回だけ作成され、コンストラクターを介して 1 回だけ接続され、Dispose メソッドを介して最後に 1 回だけ切断されることを信頼します。私はそれを正しく理解していますか?
メソッドごとに毎回状態を設定するのではなく、クラス (メソッドのグループ) ごとに 1 回だけ接続状態を設定するにはどうすればよいですか (コードを各クラス コンストラクターに追加することによって)。
ダミーコード:
public class Fixture : IDispose
{
public Fixture() { connect(); }
public void Dispose() { disconnect(); }
public void SetState1();
public void SetState2();
public void SetState3();
}
public class TestCasesForState1 : IUseFixture<Fixture>
{
public void SetFixture(fix) { fix.SetState1() } // will be called for every test case. I'd rather have it being called once for each group
[Fact]
public void TestCase1();
...
}
public class TestCasesForState2 : IUseFixture<Fixture>
{
public void SetFixture(fix) { fix.SetState2() } // will be called for every test case. I'd rather have it being called once for each group
[Fact]
public void TestCase1();
...
}
public class TestCasesForState3 : IUseFixture<Fixture>
{
public void SetFixture(fix) { fix.SetState3() } // will be called for every test case. I'd rather have it being called once for each group
[Fact]
public void TestCase1();
...
}