Nsubstitute - 当处理程序使用泛型时引发模拟对象的事件

Nsubstitute - Raise event of mocked object when handler uses generics

我们模拟一个接口,上面有一个事件:

public interface IThing<TKey, TValue>
{
    event EventHandler<Message<TKey, TValue>> OnMessage;
}

我们使用 NSubstitue 模拟界面并尝试使用 NSubstitute 准则引发事件:

var mockThing = Substitute.For<IThing>();

mockThing.OnMessage += Raise.EventWith(???)

尽管尝试了很多次,但我们无法编译该行 - 是否只是将泛型类型和参数放在正确位置的情况?

实际调用的 OnMessage() 函数如下所示:

private void OnMessage(object sender, Message<string, string> message)

应该是

mockThing.OnMessage += Raise.Event<EventHandler<Message<string, string>>>(this, new Message<string, string>("yes", "what"))