在Rhino Mocks中存根Func<T, TResult>的方法如下:
例如,以下是一个存根函数,用于模拟一个Func<int, string>类型的函数:
[TestMethod]
public void TestRhinoMocks()
{
var mock = MockRepository.GenerateMock<IFunction>();
int arg = 1;
string result = "test";
Expect.Call(mock.Invoke(arg)).Return(result);
mock.Invoke(arg);
mock.Invoke(2);
mock.Invoke(3);
mock.VerifyAllExpectations();
}
在上述示例中,Expect.Call函数用于模拟方法的调用,Times属性用于指定调用次数,Args属性用于指定调用参数,Return函数用于指定返回值。
需要注意的是,在Rhino Mocks中,如果使用Return函数指定返回值,则必须使用Return.AsType函数指定返回值的类型。例如,以下代码指定返回一个int类型的值:
Expect.Call(delegate { return 100; }).Return.AsType<int>();
此外,如果使用Func<T, TResult>类型的参数,则必须使用CallBase属性指定是否将基类作为参数调用,例如:
var mock = MockRepository.GenerateMock<IFunction>();
mock.CallBase = true;
以上就是在Rhino Mocks中存根Func<T, TResult>的方法。
领取专属 10元无门槛券
手把手带您无忧上云