2011-01-25 21 views
1

私はテストフレームワークに適度に新しく、私はMoqを読んでおり、this introductoryポストはこれまで見たことのないテストの編成方法を使用しました。さらなる研究では、.Netの世界では、BDDとContext/Specification(CS)という用語を融合させる傾向があることが示されています。私はその議論に入ることを望んでいません - 私は主にこのスタイルのテストクラスを書くことに興味があります。MSTestでコンテキスト/仕様テストを行うことは可能ですか?

This articleは、このアプローチを再度示し、テストフレームワークを通して仕様を構築するための基本クラスの使用を明示しています。

この問題は、テスト用フィクスチャをテストごとに1回だけ初期化できるMSTestのインスタンスメソッドが表示されないことです。私が見ることができる最高のテストクラスのコンストラクタですが、それは少し間違って感じる。 NUnitでは[TestFixtureSetup]を使用できます。 Visual Studioの組み込みテストフレームワークを使用して同等のものがありますか?

編集 その後、必要な柔軟性を提供するNUnitに移動しました。

答えて

2

いくつかの調査の後、私はNUnitを使用するように移動しました。 MSTestよりもNUnitを好むいくつかの理由がありますが、この特定の問題に関しては、(テストごとに実行されない)MSTestでサポートされている唯一のクラスワイドの初期化メソッドは、私が探しているもの。

Jasonが指摘しているように、[ClassInitialise]は、この静的でクラス全体の初期化をMSTestに提供します。実際には、NUnitで見つかった[TextFixtureSetup]の振る舞いを模倣する方法はありません。そのため、治具のテストが実行される前にインスタンスメソッドが一度実行されます。

+0

あなたは賢明な選択をしました。個人的には、テストにNUnitを使用しています。これは、はるかに速くて、MSTestには見つからない特別な機能があるためです。 –

1

MSTestのNUnitの[TestFixtureSetUp]を複製するには、[ClassInitialize]を試してください。 Here'sその情報を見つけたリンク。 Thisは役に立つかもしれないもう1つのブログ記事です。

+0

こんにちはJason、私は実際には、治具のすべてのテストの前にではなく、全体の治具に対して一度実行されるインスタンスメソッドで使用できるものを探しています。残念なことにClassInitializeは静的メソッドにのみ適用されます。しかし、ポインタをありがとう。 –

関連する問題