2012-02-17 7 views
5

이벤트 핸들러가 등록 된 것으로 기대를 추가합니다 :Rhino Mock. 어떻게이 같은 인터페이스가

interface IView 
{ 
    event EventHandler<MyEventArgs> SomeEvent; 
} 

및 클래스를

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

    private MyEventHandler(...) 
} 

내가 RhinoMocks 및 MockRepository.VerifyAll을 (사용이 물건을 테스트하기 위해 노력하고있어 IView.add_SomeEvent (System.EventHand :)는 다음의 예외를

Rhino.Mocks.Exceptions.ExpectationViolationException을 던진다 ler`1 [MyEventArgs]); 예상 # 1, 실제 # 0.

그래서 질문 :

어떻게 기대를 추가 할 수있는 이벤트가 등록되어 있는지? 내가 잘못하고 있었는지, 내가 찾은

+3

예상치 못한 경우 어떻게 추가합니까? –

답변

4

죄송 사람 :

내가 발표자의 새로운 인스턴스를 생성하기 전에 ReplayAll했다
_viewMock.Expect(x => x.SomeEvent+= Arg<EventHandler<MyEventArgs>>.Is.Anything); 

Presenter p = new Presenter(_viewMock); 

_mockRepository.ReplayAll(); 

... 

_mockRepository.VerifyAll(); 

.

감사합니다.

+1

또한 올바른 테스트 케이스를 작성했는지 확인하십시오. 여기서는 발표자가 View의 이벤트를 청취한다는 사실을 다루고 있기 때문에 – sll

+0

팁을 주셔서 감사합니다. 테스트 케이스가 정확하다고 생각합니다. 그 예상에 대한 유일한 문제가있었습니다. . – Eugene

관련 문제