Rhino Mockでメソッド呼び出しを初期化できません

私は以下を試しました:

var getAllResponse = new GetAllResponse();
// Prime the GetAll method
var mockILineOfBusinessService = MockRepository.GenerateMock();
mockILineOfBusinessService.Expect(i => i.GetAll(new GetAllRequest())).Return(getAllResponse);

これは私がテストしているクラスのものです:

public static string GetTeamForFocusArea(this ILineOfBusinessService lineOfBusinessService)
{
    ...
    GetAllResponse response = lineOfBusinessService.GetAll(new GetAllRequest());
    ...
}

In the above example the response type is always equal to null after the call to GetAll()

誰かが正しい方向に私を指すことができますpls?

0

1 答え

GetAllRequestの特定のインスタンスでGetAll()を実行すると、以前に設定したgetAllResponseが返されるという期待を定義しています。しかし、GetTeamForFocusArea呼び出しの中では、GetAllRequestのインスタンスが全く異なるGetAll(その時点で作成しているもの)を呼び出しています。インスタンスが一致しないため、Rhino.Mocksはこれを別の呼び出しとみなし、期待通りの結果を返しません。

GetAllに渡されるものを気にしないように見えるので、IgnoreArguments()への期待を設定します。ただ特定の結果を返すだけです。

1
追加された
ありがとうパトリック。私はまた、Mockの代わりにStubを使用することによっても動作することを発見しました。
追加された 著者 tom redfern,
実際にはスタブにもIgnoreArgumentsが必要でした
追加された 著者 tom redfern,