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

时间:2018-08-21 14:23:33

标签: c# unit-testing nsubstitute

我们模拟了一个具有事件的接口,如下所示:

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)

1 个答案:

答案 0 :(得分:2)

应该是

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