我们模拟了一个具有事件的接口,如下所示:
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)
答案 0 :(得分:2)
应该是
mockThing.OnMessage += Raise.Event<EventHandler<Message<string, string>>>(this, new Message<string, string>("yes", "what"))