私は RhinoMocks を使用しています。メソッドをスタブする必要があり、渡されたものに関係なく、常に 3 番目のパラメーターを返す必要があります。
_service.Stub(x => x.Method(parm1, parm2, parm3)).Return(parm3);
明らかに、それはそれほど簡単ではありません。パラメーターがどうなるかは常にわかりませんが、常に 3 番目のパラメーターを返したいと思っていることはわかっています。
私は RhinoMocks を使用しています。メソッドをスタブする必要があり、渡されたものに関係なく、常に 3 番目のパラメーターを返す必要があります。
_service.Stub(x => x.Method(parm1, parm2, parm3)).Return(parm3);
明らかに、それはそれほど簡単ではありません。パラメーターがどうなるかは常にわかりませんが、常に 3 番目のパラメーターを返したいと思っていることはわかっています。
Do() ハンドラを使用してメソッドの実装を提供できます。
Func<TypeX,TypeY,TypeZ,TypeZ> returnThird = (x,y,z) => z;
mock.Expect(x => x.Method(null, null, null)).IgnoreArguments().Do(returnThird);
TypeZ
入力引数の型と戻り値の型の両方であるため、 が 2 回表示されることに注意してください。
これは私のために働いた:
_service
.Stub(x => x.Method(Arg<string>.Is.Anything, ... ))
.Return(null) // ... or default(T): will be ignored but RhinoMock requires it
.WhenCalled(x =>
{
// This will be used as the return value
x.ReturnValue = (string) x.Arguments[0];
});
コールバックで expect メソッドを使用して、目的の値を返すことができます。以下は null を返します。
_service.Expect(o => o.Method(null, null, null))
.Callback((object parm1, object parm2, object parm3) => { return parm3; });
Stub で Callback を使用できるかどうかはわかりません。