2012-02-17 12 views
5

Mam interfejs tak:Rhino Mocks. Jak dodać oczekiwanie, że procedura obsługi zdarzenia zostało subskrybowanych

interface IView 
{ 
    event EventHandler<MyEventArgs> SomeEvent; 
} 

i klasę

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

    private MyEventHandler(...) 
} 

Próbuję przetestować ten materiał za pomocą RhinoMocks i MockRepository.VerifyAll () wyrzuca następującym wyjątkiem

Rhino.Mocks.Exceptions.ExpectationViolationException: IView.add_SomeEvent (System.EventHand ler`1 [MyEventArgs]); Oczekiwano # 1, Rzeczywiste # 0.

Więc pytanie:

Jak dodać oczekiwanie, że zdarzenie jest abonament?

+3

W jaki sposób dodajesz oczekiwanie, gdy się nie powiedzie? –

Odpowiedz

4

Sorry chłopaki, znalazłem co robiłem źle:

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

Presenter p = new Presenter(_viewMock); 

_mockRepository.ReplayAll(); 

... 

_mockRepository.VerifyAll(); 

musiałem ReplayAll zanim stworzyłem nową instancję Presenter.

Dzięki.

+1

Upewnij się również, że piszesz prawidłowy test, ponieważ tutaj opisujesz tylko fakt, że prezenter słucha wydarzenia z View – sll

+0

Dzięki za podpowiedź, uważam, że moje przypadki testowe są poprawne, miałem jedyny problem z tymi oczekiwaniami . – Eugene

Powiązane problemy