2012-07-30 103 views
2

我正在使用微軟的Visual Studio測試工具Moq用於單元測試。我有一個引發事件的方法,我需要驗證事件的消息是否正確。MS測試單元測試引發的事件內容

例如,方法調用這行代碼:

_myEventPublisher.RaiseEvent(new MyEvent(message: myMessage)) 

,我需要覈實myMessage的內容是正確的。

我可以成功地驗證事件引發,在單元測試這行代碼:

For<IMyEventPublisher>() 
       .Verify(x => x.RaiseEvent(It.IsAny<IMyEvent>()), Times.Exactly(1)); 

但我無法弄清楚如何驗證IMyEvent.Message字符串。

回答

3
It.Is<IMyEvent>(m => Message == expected) 

代替

It.IsAny<IMyEvent>() 
+1

感謝SERG!我還必須添加一個設置:對於() .Setup(mock => mock.RaiseEvent(It.IsAny ())) .Verifiable(); – 2012-07-30 19:52:15