Как вызвать событие с помощью Rhino Mocks, у которого есть параметр ref bool

Я пытаюсь написать тест, который охватывает мою обработку ошибок в определенном классе. Этот класс прослушивает событие Error со следующей сигнатурой:

OnError(int ErrorNumber, string ErrorText, ref bool retry)

Проблема с переменной ref bool в конце. Я использую Rhino Mocks для создания фиктивного интерфейса для тестирования, и когда я пытаюсь вызвать ошибку, используя следующее:

bool retry = false;
AdapterMock.Raise(x => x.Error += null, 0, "0", ref retry);

Он даже не скомпилируется, говоря мне, что он не может преобразовать ref bool в Object.

Если я изменю подпись на:

bool retry = false;
AdapterMock.Raise(x => x.Error += null, 0, "0", retry);

Я компилируется нормально, но тест завершается ошибкой с System.InvalidOperationException : параметр № 3 - System.Boolean, но должен быть System.Boolean&

Я рву на себе волосы, как мне правильно поднять это событие в моем макете?


person Joshua Peterson    schedule 21.10.2010    source источник
comment
Любая возможность перезаписи делегата OnError на стандарты .NET для аргументов, т.е. (отправитель объекта, аргументы OnErrorEventArgs)?   -  person PatrickSteele    schedule 27.10.2010


Ответы (1)


Пытаться:

AdapterMock.Raise( x=> x.Error += null, Arg<int>.Is.Equal(0), Arg<string>.Is.Equal("0"), Arg.Ref(ref Is.Equal(retry)));
person Marwijn    schedule 07.01.2013