Überprüfen der Ereignisregistrierung mit Moq

Ich entwickle eine asp.net (klassische) Anwendung, die versucht, das MVP-Muster zu implementierenmit diesem Beispiel. Beim Versuch, meinen Presenter einem Unit-Test zu unterziehen und das folgende Muster zu verwenden, sieht der Pseudocode so aus

//base view interface
public interface IView
{
    event EventHandler Init;

    event EventHandler Load;

    bool IsPostBack { get; }

    void DataBind();

    bool IsValid { get;}
}

//presenter psuedo code
public class SomePresenter
{
     public SomePresenter(ISomeDomainService service, IView someView)
     {
           ...
           //HOW DO WE TEST/VERIFY THAT THIS REGISTRATION OCCURS?
           someView.Init += OnInit;
           someView.Load += OnLoad;
     }
}
...
//consuming code that exercises the above code, that needs to be tested
var presenter = new SomePresenter(someDomainService, someView);

Wie stelle ich sicher, dass der Präsentator das tut, was erwartet wird, d. H., Dass er sich für die Init- und Load-Ereignisse registriert? Dies ist zwar leicht in der getanDas Beispiel von Phil Haack mit Rhino-Mocks ...

[Test]
public void VerifyAttachesToViewEvents()
{
    viewMock.Load += null;
    LastCall.IgnoreArguments();
    viewMock.PostSaved += null;
    LastCall.IgnoreArguments();
    mocks.ReplayAll();
    new PostEditController(viewMock, 
      this.dataServiceMock);
    mocks.VerifyAll();
}

... wie können wir das mit MOQ machen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage