代码之家  ›  专栏  ›  技术社区  ›  FBryant87

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

  •  0
  • FBryant87  · 技术社区  · 6 年前

    我们模拟一个接口,该接口上有一个事件,如下所示:

    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 回复  |  直到 6 年前
        1
  •  2
  •   lars k.    6 年前

    应该是

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