web-dev-qa-db-ja.com

ClassInitializeメソッドは静的である必要があるのはなぜですか?

なぜフィクスチャーのセットアップが静的でなければならないのか、私は興味がありますか?フィクスチャの有効期間を共有するフィクスチャごとのインスタンス変数を持っていると、私にはより直感的に思えます。

はい、これらはコンストラクターで初期化できますが、テストランナーの制御が及ばないことを想定しています。

セットアップ方法は静的である必要があると判断した設計要件または哲学は何ですか?

34
ProfK

ClassInitialize属性を持つメソッドは、クラス内のすべてのテストに対して1回実行されます。クラスのインスタンスはテストが実行されるたびに作成されるため、1回だけ実行するには静的である必要があります。

すべてのテストで初期化する場合は、TestInitialize属性を使用できます。これは、クラスの新しいインスタンスが作成されるたびに(テストを実行する前に)実行されます。

さらに情報が必要な場合は、以下をチェックしてください。

あの厄介なMSTest実行順序

43