Rhino Mocks ошеломляет событие с параметром ref - PullRequest
0 голосов
/ 12 августа 2010

Я пытаюсь вызвать событие из моего смоделированного объекта. Я делаю это как:

importObject.Raise(x => x.RequestImportLevel += null, false, false, true, importLevel);

последний параметр, который необходимо передать по ссылке. Итак, я получаю исключение

Параметр # 4 - System.Int16, но должно быть System.Int16 &

Что я могу сделать, чтобы справиться с этим?

Если проблема в Rhino Mocks - есть ли какие-либо другие фреймворки, которые чисто поддерживают это из коробки?

1 Ответ

0 голосов
/ 20 августа 2010

Этот объект реализовал интерфейс, поэтому я просто создал фиктивный класс, сделал его наследуемым от IEventWithRefParameter и ввел функцию типа

    public virtual void RaiseRequestImportLevelEvent(bool hasYc, bool hasWc, bool hasDc, ref short chosenLevel)
    {
        if (RequestImportLevel != null)
        {
            RequestImportLevel(hasYc, hasWc, hasDc, ref chosenLevel);
        }
    }

Теперь я использую экземпляр этого фиктивного класса в своих тестахи когда я хотел бы вызвать событие, я просто вызываю эту функцию.

не совсем чистое решение, но, по крайней мере, оно помогает.

...