単体テストと鼻緒に関するいくつかの質問

私はユニットテストを書くのが初めてです。私はMsTestフレームワークでRhino Mocksを使用しており、いくつか質問があります。

Rhinoのモックに関する文書をいくつか見つけることができますが、その機能の概要を説明しているので、私は印刷して調べることができますか?

私は、期待に関連する2つのテクニックの数々の例を見てきました。これは、特定の状況に対してより優れているか、より適切なものでしょうか?

Expect.Call( delegate { mockTestClass.MethodToMock(param) } ).Return(true);

または

var mockTestClass = MockRepositまたはy.GenerateMock();

mockTestClass.Expect( m => m.MethodToMock(param) ).Return( true );

次に、クラスのスタブとモックの違いと、どのようなシナリオでの使用が必要なのでしょうか?

Thanks fまたは any help.

3
ユニットテストの技術は本当に単体テストについて学ぶための良い本 - それは私が始めたものです。それはモックとスタブの使用にもなります。
追加された 著者 Samuel Slade,

2 答え

Rhinoモックに関するドキュメントをどこで見つけることができますか?その機能の概要を説明していますので、印刷して調べることができますか?

Rhino Mockドキュメントはこちらです。良いwikiはここ。一般的には、バージョン3.3以降のものには注意が必要です。バージョンが古くなるので注意してください。

これは特定の状況でより優れているかより適切ですか?

2番目の方法は、より "流暢"で推薦されます。

スタブとモックの違い

これに関するいくつかのリソースは次のとおりです:

ちょうどこれらのコンセプトを使い始めるなら、あなたはNUnitとMoqを使う方が良いと思います。 ここでは例を紹介します

4
追加された
フィードバックいただきありがとうございます。なぜ「あなたはNUnitとMoqを使うのが良いと思う?」と尋ねることはできますか?
追加された 著者 amateur,
+1 - 私はあなたの答えに別のRhinoリンクを追加しても構わないと思います
追加された 著者 Adam Rackis,
@amateur:NUnitは簡単で、多くの情報を見つけることができます.MoqはRhino.Mocksよりも新しく、よりよく管理され/文書化されています。
追加された 著者 Mauricio Scheffer,

特定のメソッドが呼び出され、戻り値が問題ではないことを確認したい場合は、 AAA構文および AssertWasCalled()メソッド:

// Arrange
var mock = MockRepository.GenerateMock();
var service = new MyService(mock);

// Act
service.DoSomething();

// Assert 
// ensures that SomeMethod of the mock was called 
// whilst service.DoSomething() call
mock.AssertWasCalled(m => m.SomeMethod());

RhinoMockフレームワークのスタブとモックの違いは次のとおりです。

  • 期待値はモックとスタブの両方に設定できますが、Mocksのみで検証されます。例えば、スタブ
  • Repeat()。Any() >
  • メソッドやプロパティにアクセスするときにスタブが失敗することはなく、すべてのプロパティとメソッドは指定された戻り値の型 T に対して default(T)を返し、スタブのプロパティは通常のプロパティです。 >

MockとStubの違いに関する詳細は、Mauricioの答えにあるリンクを参考にしてください。私はMartin Fowlerの仕事を提案します。

0
追加された