.NET 2.0 で BDD/TDD を実装する最良の方法は何ですか?[閉まっている]
質問
アプリケーションにテスト スイートを追加しようとしていますが、.NET 3.5 の新しいテスト フレームワークに移行できません。
使用する優れたテスト フレームワークについて提案がある人はいますか?
他のヒント
MSpec を使用した BDD 上の Rob Conery のスクリーンキャストをチェックしてください。非常に印象的 http://blog.wekeroad.com/mvc-storefront/kona-3/
編集:私は今、このアプローチを使用しています。 http://10printhello.com/the-one-bdd-framework-to-rule-them/
モック オブジェクト ライブラリについては、BSD ライセンスのライブラリを見つけました。 Rhino.モック むしろ喜ばしいことです。
を使用して大成功しました NUnit 同じように。
私も使ったことがあります Nモック モックオブジェクトの必要性が生じたとき。追加のボーナスとして、モック オブジェクトを作成するためのファクトリは Mockery と呼ばれます。
単体テストの実行を容易にするために、私は以下を使用しました テストドリブン.NET コーディングしたとおりに単体テストを実行します。また、私が使用したのは、 クルーズコントロール.NET SVN を監視し、すべての新しいコミットがビルドされ、すべての単体テストに合格することを確認します。
これはすでに述べたことの要約になるかもしれませんが、TDD では個人的に Rhino Mocks と MBUnit を使用しています。Rhino Mocks は、無料でオープンソースのモッキング フレームワークです。Rhino Mocks の利点は、NMock のように期待値を設定する際にマジック ストリングを使用する必要がないことです。
MbUnit には、テスト メソッドへの入力を変更できる RowTest の概念があるため、私は MUBnit が好きです。MBUnitも無料で入手できます。
また、単体テスト フレームワークとして選択したものが CI (継続的インテグレーション サーバー) でサポートされていることを確認する必要もあります。Nunit は Cruise Control.NET でデフォルトでサポートされており、MBUnit を ccnet で動作させるには少し追加の作業を行う必要があります。
IDE の観点からは、TestDriven.NET が必要です。TestDriven.NET を使用すると、IDE で右クリックしてテストを実行でき、MBUnit や Nunit などをサポートします。
NBehave は私が使用した BDD ライブラリです。私は他のものを使用したことがないため、比較対照することはできませんが、NBehave は MBUnit チームの Gallio によってサポートされています。つまり、TestDriven.NET で単体テストを行うのと同じように BDD テストを実行できます。
Resharperも強くお勧めします。このリファクタリングおよびガイダンス ツールを使用すると、生産性が大幅に向上することがわかります。これは、テストの開発中にコードを変更するのに役立ちます。
お役に立てれば
私は叫ばなければならないだろう モク. 。これは、成功の落とし穴に導くのに役立つ、クリーンで軽量なモック フレームワークです。
TFS に組み込まれているテスト ツールは問題なく、仕事を完了させますが、多くの場合、操作が少し面倒になることがあります。生成されたレポート、コード カバレッジ、その他のいくつかの部分は特にひどいもので、50 歳ではなく 22 歳でハゲてしまうほどです。
テストが本当に好きなら、継続的インテグレーションを試してみることを検討してください。退行による痛みをすぐに感じることができ、最終目標に早く到達できる可能性があります。
時間があれば、何をするにしても、いくつか試してみて、どれが最も自然であるかを確認してください。幸運を祈り、コーディングを楽しんでください。
TFS で nUnit を使用することはそれほど難しくありません。これを実装するプロジェクトが codeplex にもあります。 チームビルド用のNUnit これにより、結果がウェアハウスに「公開」されます。
私は試したことはありませんが、TFS の実装に興味があり、nUnit に多額の投資をしている (または MSTest ツールよりも nUnit を強く好む) クライアントには、すべての変換を試行するのではなく、nUnit を継続することをお勧めします。既存のテスト。
NUnit で入手可能です http://www.nunit.orgMS スタックで作業している場合でも、これをお勧めします。MVC プレビューでは非 MS フレームワークのサポートが行われており、スタックをカスタマイズできるようにする正しい方向への明確な動きを示しています。
NUnit はいつも私のお気に入りです。ただし、ソース管理として TFS を使用している場合は、Microsoft スタックを使用することをお勧めします。
私のプロジェクトでは、NUnit と TestDriven.NET を使用して大きな成功を収めました。テスト コードをホストするためだけに別のライブラリを作成することも、実行可能ファイルまたはライブラリに配置することもできます。すべては、実稼働コードをテストコードと結び付けたいかどうかによって異なります。
依存関係の注入には、次を使用します Nインジェクト 私の現在のプロジェクトでは、その仕事は素晴らしいです。コンストラクター インジェクションを使用する場合、[Inject] 属性でコードを煩雑にする必要はありません。
.NET 2.0 プロジェクトではモック ライブラリを使用していませんが、別の .NET 3.5 プロジェクトでは使用する予定です モク
これらはすべて .NET 2.0 以降で動作することに注意してください。(モックを除く)