2011-10-22 31 views
0

我有下面的代碼片段:Rhino.Mocks:AssertWasCalled可以在比較方法參數時使用自定義的IEqualityComparer嗎?

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

不幸的是,我不得不實施,才能在參數類型Equals方法最後斷言工作。有沒有辦法使用自定義的IEqualityComparer實現呢?

回答

1

嘗試使用custom argument constraints。這將讓你寫的東西,如:

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

檢查Rhino Mocks constraints reference一些內置的匹配器。如果沒有人做你需要的,你可以通過繼承AbstractConstraint或現有的一個匹配器來創建你自己的。

+0

是的,它的工作原理。非常感謝你。 – mark

相關問題