2011-06-28 19 views
21

XUnitのNUnitの[TestFixtureSetUp]に相当するものは何ですか? 私は、IUseFixtureが[TestFixtureSetUp]と同等であるが、期待通りに動作しないことを調査した。 私たちが調べた(nUnitの場合)ように、[TestFixtureSetUp]はコードのためのメソッドをマークしたことが、治具のすべてのテストが実行される前に一度だけ実行されることがわかりました。 xUnitの[TestFixtureSetUp]に相当するのは、私が調べたようにIUseFixtureです。しかし、テスト中に、IUseFixtureの 'SetFixture'メソッドがすべてのテストの前に呼び出されていることがわかりました(すべてのメソッドに対して一度だけでなく)。xUnitフレームワーク:XUnitのNUnitの[TestFixtureSetUp]に相当しますか?

上記のxUnitでどのように達成できるかを教えてください。私たちが何かを誤解している場合は、私たちも修正してください。ありがとう

答えて

27

XUnitには[TestFixtureSetUp]の直接の同等物はありませんが、同様の機能を実現できます。 This pageは、NUnitとXUnitの間の変換(およびその他のC#/ .NETテストフレームワーク)をレイアウトします。しかし、XUnitは主にセットアップ/ティアダウンを取り除いた(this articleはその決定がなされた理由を説明している)。代わりに、フィクスチャの一部のデータを初期化できるIUseFixture<T>というインターフェースを実装するテストスイートが必要です。

また、NUnit/MbUnitの背景から来る視点から書かれたthis overview of XUnitも読んでみたいかもしれません。

+1

ありがとうLaepdjek。我々はポイントを得た。 (T's)コンストラクタのT(IUseFixture )を初期化することができ、すべてのテストメソッドで共有されます。 –

+7

xUnitが一般に他のテストフレームワークよりもはるかに直感的であることを考えると、ソリューションがとても煩わしいというのは驚くべきことです。 – nathanchere

+0

静的コンストラクタを使用することは、多くのユースケースで良い回避策となります。 –

関連する問題