我正在使用RhinoMocks,我需要对方法进行 stub 处理,并且无论传入什么,始终使它返回第三个参数:

_service.Stub(x => x.Method(parm1, parm2, parm3)).Return(parm3);

显然,这并不容易。我并不总是知道参数将是什么,但是我知道我总是想返回第三个。

最佳答案

您可以使用Do() handler提供方法的实现:

Func<TypeX,TypeY,TypeZ,TypeZ> returnThird = (x,y,z) => z;
mock.Expect(x => x.Method(null, null, null)).IgnoreArguments().Do(returnThird);

注意TypeZ出现两次,因为它既是输入参数类型又是返回类型。

09-10 08:56
查看更多