.NET 2.0 で BDD/TDD を実装する最良の方法は何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/2214

  •  08-06-2019
  •  | 
  •  

質問

アプリケーションにテスト スイートを追加しようとしていますが、.NET 3.5 の新しいテスト フレームワークに移行できません。

使用する優れたテスト フレームワークについて提案がある人はいますか?

役に立ちましたか?

解決

を使用しております MbUnit そして リノ・モックス そしてそれらは非常にうまく連携することが証明されています。TDD を実行する場合、ほぼ確実に何らかの形式の依存性注入を行う必要がありますが、これは手動で行うこともできますが、次のような IoC コンテナを検討する価値があります。 ウィンザー城.

まずは John Paul Bodhood のスクリーン キャストを見てみる価値があります。 JPBのブログ

他のヒント

NUnit と Rhino はよく合います。 自動モックコンテナ 興味があるかもしれません。

BDDも検討している場合は、 N振る舞い おそらく良い選択でしょう。ただし、単体テスト (xSpec) に関連する BDD のスタイルだけを意味する場合は、フレームワークを追加するだけで済みます (ただし、 スペックユニット シンタクティックシュガーをいくつか追加してください)、しかし、あなたは見てみたいかもしれません Mスペック も興味深いです。

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 スタックを使用することをお勧めします。

以下をお勧めします。

テストドリブン.NET - NUnit、MbUnit などを含むすべての主要な単体テスト フレームワークと完全に統合された VS 用の単体テスト アドオン

タイプモックアイソレーター- モックフレームワーク .Net単体テスト

NUnit - C# によるオープンソースの単体テスト フレームワーク。

私のプロジェクトでは、NUnit と TestDriven.NET を使用して大きな成功を収めました。テスト コードをホストするためだけに別のライブラリを作成することも、実行可能ファイルまたはライブラリに配置することもできます。すべては、実稼働コードをテストコードと結び付けたいかどうかによって異なります。

依存関係の注入には、次を使用します Nインジェクト 私の現在のプロジェクトでは、その仕事は素晴らしいです。コンストラクター インジェクションを使用する場合、[Inject] 属性でコードを煩雑にする必要はありません。

.NET 2.0 プロジェクトではモック ライブラリを使用していませんが、別の .NET 3.5 プロジェクトでは使用する予定です モク

これらはすべて .NET 2.0 以降で動作することに注意してください。(モックを除く)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top