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

Eug*_*ene 5 .net c# events unit-testing rhino-mocks

我有这样的界面:

interface IView
{
     event EventHandler<MyEventArgs> SomeEvent;
}
Run Code Online (Sandbox Code Playgroud)

和一个班级

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

     private MyEventHandler(...)
}
Run Code Online (Sandbox Code Playgroud)

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

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

所以问题是:

如何添加订阅事件的期望?

Eug*_*ene 4

抱歉各位,我发现我做错了什么:

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

Presenter p = new Presenter(_viewMock);

_mockRepository.ReplayAll();

...

_mockRepository.VerifyAll();
Run Code Online (Sandbox Code Playgroud)

在创建新的 Presenter 实例之前,我必须重播所有内容。

谢谢。