いくつかの可能な実装オブジェクトの 1 つを作成し、それをインターフェイス参照として返す単純なファクトリ クラスの単体テストを作成しようとしています。
DUnit には組み込みプロシージャ がありCheckIs(AObject: TObject; AClass: TClass; msg: string)
、オブジェクトのクラス タイプが期待されるものと一致しない場合、その名前と受け入れるパラメータに基づいてテストに失敗する必要があります。唯一の問題は、インターフェイス参照ではなくオブジェクト参照が必要なことです。
そのため、テストの本体で比較を使用して実行しようとしてCheckTrue
いますが、C# の場合ほど Delphi の型チェック サポートには慣れていません。
is
オブジェクト参照でのみ機能するため、演算子が問題外であることはわかっています。
CheckTrue(LMyInterfaceReference {comparison here} TMyClass);
助言がありますか?
ところで、私は Delphi 2009 を使用しているため、2010 年以降に追加された新しい RTTI サポートにアクセスできません。