我正在尝试为一个简单的工厂类编写一个单元测试,该类创建几个可能的实现对象之一并将其作为接口引用返回。
DUnit 有一个内置过程 ,CheckIs(AObject: TObject; AClass: TClass; msg: string)
如果对象的类类型与预期的不匹配,则基于它的名称和它接受的参数应该无法通过测试。唯一的问题是它需要对象引用而不是接口引用。
因此,我尝试CheckTrue
在测试主体中使用和执行比较,但我对 Delphi 的类型检查支持不像 C# 那样熟悉。
我知道is
运算符是不可能的,因为它只适用于对象引用。
CheckTrue(LMyInterfaceReference {comparison here} TMyClass);
有什么建议么?
顺便说一句,我使用的是 Delphi 2009,所以我无法访问 2010+ 中添加的新 RTTI 支持。