3

私はスタブとモックについて学ぶことを考えていて、.Net で利用可能なライブラリのいくつかを知っています: RhinoMocks、Moq、TypeMock... とはいえ、スタブとモックの違いはまだはっきりしていません。 、私はそれがそこにあることを知っています、そして私はいつでもそれについてグーグルすることができました.

TDDなどに関係なく、知りたいのですが:

  • 学習曲線はそれだけの価値がありますか? 期待や、この状況で見返りが得られるものについて、すべての細かい詳細を学習できるかどうかはわかりません。

  • 「ダミーの実装」を手動で作成するよりも生産上の利益は大きくなりますか? クラスを動的にモック/スタブ化する方が高速なので、そう思います。

  • どのライブラリをお勧めしますか? Moq の方が簡単なようです。

  • ダミーにとって最適なリソース (チュートリアル、本、ビデオなど) はどれですか?多かれ少なかれ最新のものですか? ライブラリについて知りたくないのですが、最後のリリースをダウンロードすると、表示されている API のほとんどが無効になっていることに気付きます。

すべてに感謝します。

4

4 に答える 4

5
  • 価値のある学習曲線?- はい、それほど難しくありません。モッキング フレームワークの使い方がわかれば、単体テストの時間を大幅に節約できます。

  • 手動モックよりも優れていますか? -必ずしもそうではありませんが、状況によっては、手動のモックの方が優れている場合があります。しかし、IMO では、モッキング フレームワークは通常、最小限のコードで作業を完了するための最速の方法です。両方のアプローチを試してみると、特定の状況でどちらが最適かがわかります。

  • どの図書館?-この調査によると、 MoqRhino Mocksが .Net で最も人気があり、どちらも豊富な機能を備えており、使いやすいです。Rhino には 2 つのモック方法があります (「記録と再生」と「AAA」モード)。私は AAA モードのみを使用します。Moq は Rhino の「AAA」モードのようにしか機能しないと思うので、少し混乱が少ないかもしれません

  • 特定のリソースがわからない場合は、ツールを選択してググるだけで、たくさん見つかります。

モックとスタブの違いについて言えば、モックは何が起こったか (例えば、どのメソッドが呼び出されたか) を記録できますが、スタブは記録できません。それらを使い始めると、より多くのことがわかります。

于 2010-11-12T10:22:10.710 に答える
2

FakeItEasyを数か月間使用していますが、Faking Amazing です!
あまりお勧めできません。

于 2010-11-12T10:20:00.917 に答える
0

私は実際にRhinoMocksを使用しています。学習曲線は非常に苦痛ですが、今では結果に非常に満足しています。とにかく、ダミーの実装を手動で作成するよりも高速になるまでには、時間がかかります (少なくとも、私は時間がかかりましたが、私は少しばかげているかもしれません:))。あなたが言及した他のライブラリを使用したことがないため、それらを比較することはできません。

ホームページには、いくつかの優れたドキュメントも含まれています。

全体として、それは価値のある努力だったと思います。

于 2010-11-12T10:23:00.337 に答える
0

スタブ- 「本物の」オブジェクトの動作を模倣し、テストを実行可能に保つ役割を担う偽のオブジェクト。

モック- テストが成功したかどうかをアサートするために使用されるスタブ。


フレームワークのモックについて - この質問は以前に尋ねられました。

私自身の好みは、両方のアプローチを使用することです。フレームワークを使用する方が簡単だと感じたときは、フレームワークを使用します。逆もまた同様です。単純な偽物で十分であり、理解しやすい場合もあります。残念ながら、実際に使用して学ぶまで、自分で判断することはできません。

Moq は最近、.Net 空間で最も流行のモッキング フレームワークのようです。私も使っています。

于 2010-11-12T13:24:00.527 に答える