2

Rhino Mocks LastCallをいつ使用すべきか、Expect.Callをいつ使用すべきかを説明できますか?私は、Expect.Callがラッパー内の単なるLastCallであることを収集しました。また、Rhino Mocksで戻り値を処理するときは、Expect.Callを使用する必要があると思います。

4

1 に答える 1

2
using (mocks.Record())
{
    myMock.AVeryMeaningFullMethodThatDoesNotReturnAValue("a to be ignored parameter");
    LastCall.IgnoreArguments();

    Expect.Call(myMock.AnotherMethodThatDoesReturnAValue()).IgnoreArguments().Returns("barney");
}

最初に少し紹介します。モードではRecord、「モック」環境の動作を指定できます。これを行うことはできますが、期待するメソッドを指定するだけです。

myMock.AVeryMeaningFullMethodThatDoesNotReturnAValue("a to be ignored parameter");

または、モックフレームワークを介してこれを行うことができます。

Expect.Call(myMock.Do("stuff")).Return("something");

最初のケースでは、モックされたメソッドは値を返さないため、Rhinoモックフレームワークのメソッドを呼び出すことはできません。Expect.Call()リターンタイプを要求します。プログラマーがRhinoのモック動作(例IgnoreArguments())を指定できるようにするために、静的クラスを提供しますLastCall

そうすればIgnoreArguments、まだvoidメソッドを使用できます。または、何度も繰り返すことを期待することを指定します(LastCall.Repeat.Any())。

于 2013-02-03T20:12:52.823 に答える