ASP.Net MVC - Rhino Mocks - 预期的方法调用参数

时间:2011-01-07 10:43:41

标签: asp.net mocking rhino

我正在设置一个以对象作为参数的方法。此对象将在被调用的功能内创建。当我嘲笑这个时,我得到一个错误,说预期#1实际#0

如何解决这个问题?

代码:

Customer testObject = new Customer(); Expect.Call(sampleRepository.Find(的TestObject))返回(真);

我怀疑创建一个新对象会使这种期望失败。

请帮忙。

2 个答案:

答案 0 :(得分:1)

使用“IgnoreArguments”方法:

Customer testObject = new Customer(); Expect.Call(sampleRepository.Find(testObject)).IgnoreArguments().Return(True);

这告诉Rhino.Mocks只希望调用“查找”而你不关心参数是什么。

答案 1 :(得分:1)

除了Patrick的答案之外,您可以使用Constraints()检查对象的属性,而无需检查对象实例本身。 Constraints的每个参数都是该位置实际参数的约束(您可以将&&||用于多个约束以组合它们):

Customer testObject = new Customer();

Expect.Call(sampleRepository.Find(testObject))
    .Constraints(
        Is.NotNull() && Property.Value("Nickname", "SnakeEyes")
    )
    .Return(True);