我有一个接口IPeakCommunication
和派生类PeakCommunication
.在派生类内部,我有一个方法Send(RequestData request)
的实现,它做一些事情,正如我所预期的那样,它调用事件RequestReceived
并传递参数request
.
我会为一些与IPeakCommunication
交互的类创建单元测试,并调用Send(RequestData request)
方法.但是我不知道如何创建一个Mock,它从参数中获取一个对象并使用它来调用RequestReceived
事件.
public interface IPeakCommunication : IDisposable
{
#region Delegates
delegate void PeakRequestReceivedHandler(RequestData data);
#endregion
#region Events
event PeakRequestReceivedHandler? RequestReceived;
#endregion
#region Methods
void Send(RequestData data);
#endregion
}
我试图编写的代码如下:
var mockCommunication = new Mock<IPeakCommunication>();
mockCommunication.Setup(x => x.Send(It.IsAny<RequestData>()))
.Raises(x => x.RequestReceived += null, new object[] { /*argument from Send()?*/ } );