I'm not sure how your test actually calls the DoSomething () method. You may be missing something to run the event. Other than that, I think you're on the right track for testing events with Rhino Mocks
Anyway, here is another way that I like to deal with events:
[Test] public void MyEventTest() { IEventRaiser eventRaiser; mockView = _mocks.CreateMock<IView>(); using (_mocks.Record()) { mockView.DoSomethingEvent += null; eventRaiser = LastCall.IgnoreArguments(); } using (_mocks.Playback()) { new Controller(mockView, mockModel); eventRaiser.Raise(mockView, EventArgs.Empty); } }
source share