RhinoMocks期望复杂对象作为参数

时间:2011-03-22 01:35:15

标签: c# .net unit-testing mocking rhino-mocks

如果使用简单的参数调用我的方法,例如Arg.Is.Equal(1)等,我使用AssertWasCalled来检查RhinoMocks没有问题。

但是,当我试图期待我自己创建的复杂对象时,它失败了,例如

Arg<CustomClass>.Is.Equal(CustomClassInstance)

当然,我很清楚这不应该有效,因为引用不匹配。但是,我的问题是:我如何让它发挥作用?如何让RhinoMocks期望一个具有特定值的对象?

1 个答案:

答案 0 :(得分:9)

您可以使用Arg<T>.Matches (Predicate<T> predicate)之类的:

mock.AssertWasCalled (m => m.Foo (Arg<CustomClass>.Matches (c => c.Foo == CustomClassInstance.Foo));