2012-07-30 57 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