2012-02-17 5 views
5

Ho un'interfaccia simile:Muli di rinoceronte. Come aggiungere aspettativa che gestore di eventi è stato sottoscritto

interface IView 
{ 
    event EventHandler<MyEventArgs> SomeEvent; 
} 

e una classe

class Presenter 
{ 
    private IView _view; 
    public Presenter(IView view) 
    { 
     view.SomeEvent += MyEventHandler; 
    } 

    private MyEventHandler(...) 
} 

sto cercando di testare questa roba utilizzando RhinoMocks e MockRepository.VerifyAll () genera la seguente eccezione

Rhino.Mocks.Exceptions.ExpectationViolationException: IView.add_SomeEvent (System.EventHand ler`1 [MyEventArgs]); Previsto n. 1, effettivo n. 0.

Quindi la domanda:

Come aggiungere l'aspettativa che evento viene sottoscritto?

+3

Come stai aggiungendo l'aspettativa quando fallisce? –

risposta

4

Scusate ragazzi, ho trovato quello che stavo facendo male:

_viewMock.Expect(x => x.SomeEvent+= Arg<EventHandler<MyEventArgs>>.Is.Anything); 

Presenter p = new Presenter(_viewMock); 

_mockRepository.ReplayAll(); 

... 

_mockRepository.VerifyAll(); 

ho dovuto Replayall prima che ho creato nuova istanza di presentatore.

Grazie.

+1

Assicurati anche di scrivere un test case valido, poiché qui stai coprendo solo il fatto che il presentatore ascolta l'evento View – sll

+0

Grazie per il suggerimento, credo che i miei casi di test siano corretti, ho avuto l'unico problema con quella aspettativa . – Eugene

Problemi correlati