1

使用 RhinoMocks 我想引发一个事件,其中事件处理程序签名如下所示: MyEventHandler(int a value, ref bool handled) {..}

如果我使用:
myMock.Raise(x => x.MyEventHandler += null, aValue, handled);

我收到以下错误消息: System.InvalidOperationException: Parameter #2 is System.Boolean 但应该是 System.Boolean&

我试过了:
myMock.Raise(x => x.MyEventHandler += null, aValue, ref Arg<bool>.Ref(Is.Anything(), handled).Dummy);
但这甚至没有编译......

引发此事件的正确方法是什么?

4

1 回答 1

0

看看下面的例子

[Test]
public void RaiseEvent()
{
    var mock = MockRepository.GenerateMock<IEventsRaiser>();
    mock.GetEventRaiser(x => x.MyEvent += null).Raise(1, Arg<bool>.Ref(new Anything(), true).Dummy);
}

public delegate void MyEventHandler(int a, ref bool handled);

public interface IEventsRaiser
{
    event MyEventHandler MyEvent;
}
于 2012-08-12T22:00:52.347 回答