Как я могу 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;