我有以下代码段:
Action<IProbingErrorHandler> handlerAction = x => x.Post(sourceContext, channelId, probingError);
var handler = MockRepository.GenerateStub<IProbingErrorHandler>();
handler.Stub(handlerAction);
...
handler.AssertWasCalled(handlerAction);
不幸的是,我必须在参数类型中实现Equals方法,以便最后一个断言起作用。有没有办法使用自定义IEqualityComparer实现?
答案 0 :(得分:1)
尝试使用custom argument constraints。这将让你写出类似的东西:
handler
.Stub(x => x.Post(Arg<string>.Matches(s => ...), ..., ...))
.Return(something);
检查一些内置匹配器的Rhino Mocks constraints reference。如果这些都不能满足您的需求,您可以通过继承AbstractConstraint
或其中一个现有匹配器来创建自己的。