1. ホーム
  2. mocking

[解決済み] Rhino Mocksのモックとスタブの違いは何ですか?

2022-05-03 01:07:32

質問

私はまだ十分に遊んでおらず、普段はモックを使っているのですが、この2つの違いや、Rhino Mocksでどちらを使うべきかを教えてください。

更新しました。

での回答も見つけました。 アエンデの言葉 :

スタブとモックの違い



これらの用語の実際の定義は、こちらの記事で確認できます。 モックはスタブではない . ここでは、Rhinoのモックの観点からその違いに焦点を当てたいと思います。

モックとは、期待値を設定することができ、期待した動作が本当に起こったかどうかを検証するオブジェクトのことです。スタブとは、テスト対象のコードに渡すために使用するオブジェクトのことです。期待値を設定することで、特定の動作をさせることができますが、 その期待値は決して検証されることはありません。スタブのプロパティは自動的に通常のプロパティのように動作し、期待値を設定することはできません。

テスト対象のコードの振る舞いを検証したい場合は、適切な期待値を持つモックを使って、それを検証することになります。ある特定の動作をする必要があるが、今回のテストの対象ではない値を渡したいだけなら、 スタブを使用します。

重要: スタブが原因でテストが失敗することはありません。

どのように解決するのですか?

の通りです。 これ

... 簡単に言うと、モックとスタブオブジェクトの違いは RhinoMocksはそのことを認識しており、より適切なテストを書くことができます。 は、その目的を記述します。

モックオブジェクトは、次のような期待値を定義するために使用されます:このシナリオでは、次のような期待値を定義します。 メソッドA()が、このようなパラメータで呼び出されることを期待します。 モック を記録し、そのような期待を検証する。

一方、スタブには別の目的がある。 を検証するのではなく、動作を「置き換える」ことを可能にします。 テストシナリオを利用するために、"偽 "オブジェクトの状態 ...