Как да повдигна събитие с помощта на Rhino Mocks, което има параметър ref bool

Опитвам се да напиша тест, който покрива моята обработка на грешки в определен клас. Този клас очаква събитие за грешка със следния подпис:

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