犀牛嘲笑。如何添加订阅事件处理程序的期望

时间:2012-02-17 11:41:22

标签: c# .net unit-testing events rhino-mocks

我有这样的界面:

interface IView
{
     event EventHandler<MyEventArgs> SomeEvent;
}

和一个班级

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

     private MyEventHandler(...)
}

我正在尝试使用RhinoMocks测试这些东西,并且MockRepository.VerifyAll()会抛出以下异常

  

Rhino.Mocks.Exceptions.ExpectationViolationException:   IView.add_SomeEvent(System.EventHandler`1 [MyEventArgs]);预计#1,   实际#0。

所以问题是:

如何添加订阅活动的期望?

1 个答案:

答案 0 :(得分:4)

对不起伙计们,我发现我做错了什么:

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

Presenter p = new Presenter(_viewMock);

_mockRepository.ReplayAll();

...

_mockRepository.VerifyAll();

在创建Presenter的新实例之前,我不得不重播。

感谢。