首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Rhino Mocks中存根Func <T,TResult>?

在Rhino Mocks中存根Func<T, TResult>的方法如下:

  1. 首先,需要导入Rhino Mocks NuGet包。
  2. 然后,可以创建一个存根函数,使用Func<T, TResult>类型作为参数。
  3. 在存根函数中,可以使用Expect.Call函数来模拟一个方法的调用。
  4. 在Expect.Call函数中,可以使用Times属性来指定调用次数,使用Args属性来指定调用参数。
  5. 最后,可以使用Return函数来指定返回值。

例如,以下是一个存根函数,用于模拟一个Func<int, string>类型的函数:

代码语言:csharp
复制
[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类型的值:

代码语言:csharp
复制
Expect.Call(delegate { return 100; }).Return.AsType<int>();

此外,如果使用Func<T, TResult>类型的参数,则必须使用CallBase属性指定是否将基类作为参数调用,例如:

代码语言:csharp
复制
var mock = MockRepository.GenerateMock<IFunction>();
mock.CallBase = true;

以上就是在Rhino Mocks中存根Func<T, TResult>的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券