如何在Delphi中模拟事件处理程序或将接口方法指定为委托?

如何在Delphi中模拟事件处理程序或将接口方法指定为委托?,delphi,interface,delegates,delphi-mocks,Delphi,Interface,Delegates,Delphi Mocks,因此,我有一个带有事件的Delphi对象,它是“对过程()的引用”。 通常我可以这样做来分配代理 MyObj.OnBooom:=HandleOnBooom 现在,我想对事件是否被调用进行单元测试。因此,使用依赖于接口的Delphi Mock,我将创建一个具有过程“OnBooom”的接口,将接口传递给TMock对象。然后这样做 MyObj.OnBooom:=FMockCaller.Instance.OnBooom 但这不会编译,因为显然Delphi认为,在右侧,我只是调用接口的过程,而不是希望将其

因此,我有一个带有事件的Delphi对象,它是“对过程()的引用”。 通常我可以这样做来分配代理

MyObj.OnBooom:=HandleOnBooom

现在,我想对事件是否被调用进行单元测试。因此,使用依赖于接口的Delphi Mock,我将创建一个具有过程“OnBooom”的接口,将接口传递给TMock对象。然后这样做

MyObj.OnBooom:=FMockCaller.Instance.OnBooom

但这不会编译,因为显然Delphi认为,在右侧,我只是调用接口的过程,而不是希望将其分配给左侧


那么,有没有办法让这个任务生效?或者是否有其他方法可以模拟事件?谢谢。

您可以使用匿名方法:

MyObj.OnBooom := procedure begin FMockCaller.Instance.OnBooom; end;
类似问题。