1

RhinoMocksを使用して、イベントハンドラーの署名が次のようになっているイベントを発生させたいと思います。 MyEventHandler(int a value, ref bool handled) {..}

私が使用する場合:
myMock.Raise(x => x.MyEventHandler += null, aValue, handled);

次のエラーメッセージが表示されます:System.InvalidOperationException:パラメータ#2はSystem.Booleanですが、System.Boolean&である必要があります

私はそれを試してみました:
myMock.Raise(x => x.MyEventHandler += null, aValue, ref Arg<bool>.Ref(Is.Anything(), handled).Dummy);
しかしそれはコンパイルさえしません...

このイベントを開催する正しい方法は何ですか?

4

1 に答える 1

0

Take a look on following example

[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 に答える