Как я могу Delphi Mocks обработчик события или назначить метод интерфейса в качестве делегата в Delphi?

Итак, у меня есть объект Delphi с событием, которое является "ссылкой на процедуру ()". Обычно я могу сделать это, чтобы назначить делегата.

MyObj.OnBooom: = HandleOnBooom;

Теперь я хочу провести модульное тестирование, вызывается ли событие. Итак, в Delphi Mocks, который опирается на интерфейс, я создам интерфейс с процедурой "OnBooom", передам интерфейс объекту TMock. Тогда сделай это.

MyObj.OnBooom: = FMockCaller.Instance.OnBooom;

Но это не скомпилируется, потому что, по-видимому, Delphi считает, что в правой части я просто вызываю процедуру интерфейса вместо того, чтобы назначать ее левой стороне.

Итак, есть ли способ заставить это назначение работать? или есть другой способ Delphi Mocks на событие? Благодарю.

1 ответ

Решение

Вы можете использовать анонимный метод:

MyObj.OnBooom := procedure begin FMockCaller.Instance.OnBooom; end;
Другие вопросы по тегам