我可以在Rhino Mocks中获得预期使用的参数吗?

时间:2009-04-21 15:27:44

标签: rhino-mocks

我正在设置一个对构建和执行查询的方法的调用的期望。我想询问所用参数的属性。这可能吗

using (mocks.Record())
{
    Expect.Call(connection.Retrieve(SOMETHING_HERE)).Return(returnedDatay);
}

我追求的是“SOMETHING HERE”位。

(这是我第一次使用Rhino嘲笑)

1 个答案:

答案 0 :(得分:10)

您可以设置参数和参数属性的约束。以下代码在连接对象上的名为MyProperty的属性上设置约束。模拟器期望MyProperty为42.注意,null被作为参数传递,因为它被忽略了。

Expect
    .Call(connection.Retrieve(null))
    .IgnoreArguments()
    .Constraints(Property.Value("MyProperty", 42))
    .Return(returnedData);

我是从记忆中写的,所以它可能不是绝对正确的。


更新:

Rhino Mocks 3.5版引入了一个新的扩展方法GetArgumentsForCallsMadeOn,它允许您检查传递给模拟对象的参数:

http://kashfarooq.wordpress.com/2009/01/10/rhino-mocks-and-getargumentsforcallsmadeon/