Rhino.Mocks:在比较方法参数时,AssertWasCalled可以使用自定义IEqualityComparer吗?

时间:2011-10-22 19:17:20

标签: rhino-mocks

我有以下代码段:

Action<IProbingErrorHandler> handlerAction = x => x.Post(sourceContext, channelId, probingError);
var handler = MockRepository.GenerateStub<IProbingErrorHandler>();
handler.Stub(handlerAction);
...
handler.AssertWasCalled(handlerAction);

不幸的是,我必须在参数类型中实现Equals方法,以便最后一个断言起作用。有没有办法使用自定义IEqualityComparer实现?

1 个答案:

答案 0 :(得分:1)

尝试使用custom argument constraints。这将让你写出类似的东西:

handler
    .Stub(x => x.Post(Arg<string>.Matches(s => ...), ..., ...)) 
    .Return(something);

检查一些内置匹配器的Rhino Mocks constraints reference。如果这些都不能满足您的需求,您可以通过继承AbstractConstraint或其中一个现有匹配器来创建自己的。