2012-02-17 21 views
5

olay işleyicisi abone olduğu beklenti eklemek için:Rhino Mocks. Nasıl bir böyle bir arayüze sahip

interface IView 
{ 
    event EventHandler<MyEventArgs> SomeEvent; 
} 

ve bir sınıf

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

    private MyEventHandler(...) 
} 

Ben RhinoMocks ve MockRepository.VerifyAll (kullanarak bu şeyleri test etmek çalışıyorum IView.add_SomeEvent (System.EventHand:) aşağıdaki istisna

Rhino.Mocks.Exceptions.ExpectationViolationException atar ler`1 [MyEventArgs]); Beklenen # 1, Gerçek # 0.

Yani soru:

Nasıl beklenti eklemek için olay abone olduğunu? Yanlış ne yaptığını, ben bulduk

+3

Başarısız olunca beklentiyi nasıl ekliyorsunuz? –

cevap

4

Maalesef adamlar:

Ben Presenter yeni bir örneğini yaratmadan önce ReplayAll zorunda
_viewMock.Expect(x => x.SomeEvent+= Arg<EventHandler<MyEventArgs>>.Is.Anything); 

Presenter p = new Presenter(_viewMock); 

_mockRepository.ReplayAll(); 

... 

_mockRepository.VerifyAll(); 

.

Teşekkürler.

+1

Ayrıca geçerli bir test vakası yazdığınızdan emin olun, çünkü burada sunum yapan kişinin View'ın etkinliğini dinlediği bir gerçeği mi kaplıyorsunuz? – sll

+0

Bahşiş için teşekkürler, test vakalarımın doğru olduğuna inanıyorum, bu beklentiyle ilgili tek sorunum vardı . – Eugene