我怎么能Delphi模拟一个事件处理程序,或者在Delphi中将接口方法指定为委托?

时间:2014-10-14 09:33:45

标签: delphi interface delegates delphi-mocks

所以,我有一个带有事件的Delphi对象,它是对procedure()"的引用。 通常我可以这样做来分配代表。

MyObj.OnBooom:= HandleOnBooom;

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

MyObj.OnBooom:= FMockCaller.Instance.OnBooom;

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

那么,有没有办法让这个分配工作?还是有其他方式让Delphi模拟这个事件吗?感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用匿名方法:

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