2014-10-14 3 views
0

그래서 "procedure()"에 대한 참조 인 이벤트가있는 Delphi 객체가 있습니다. 일반적으로 대리인을 할당하기 위해이 작업을 수행 할 수 있습니다.Delphi에서 이벤트 핸들러를 모의하거나 어떻게 델파이에서 인터페이스 메소드를 델리게이트로 지정할 수 있습니까?

MyObj.OnBooom : = HandleOnBooom;

이제 이벤트가 호출되는지 여부를 단위 테스트하고 싶습니다. 따라서 인터페이스에 의존하는 Delphi Mocks에서는 "OnBooom"프로 시저가있는 인터페이스를 만들고 TMock 객체에 인터페이스를 전달합니다. 그럼 해.

MyObj.OnBooom : = FMockCaller.Instance.OnBooom;

델파이는 오른쪽에서 인터페이스의 프로 시저를 호출하고 있는데, 왼쪽에 할당하고 싶다고 생각하기 때문에 컴파일되지 않습니다.

그래서이 할당을 사용할 수있는 방법이 있습니까? 또는 다른 방법으로 Delphi Mock에서 이벤트를 수행합니까? 감사.

+0

비슷한 질문 [이벤트 핸들러와 같은 인터페이스 방법 (http://stackoverflow.com/q/3422142/576719). –

답변

2

당신은 익명의 방법을 사용할 수 있습니다

MyObj.OnBooom := procedure begin FMockCaller.Instance.OnBooom; end;