1

私は Adob​​e の CS Extension Builder を使用しており、テストを可能にするために、特定のクラスの具体的な実装をインターフェースで抽象化しました。

API クラスをインターフェイスにキャストするにはどうすればよいですか? 私はAS3が動的言語であることを考えて、「Application as IApplication」は機能しますが、機能しません。インターフェースはそれらの実装に含まれるものを指定するだけであり、それ以上のものは何も指定しないことに注意してください。したがって、動的な観点からは機能するはずです。

提案どおりに次のことを試しましたが、iApp null のままです。インターフェイスのプロパティの 1 つが Application で具象型を返している可能性がありますが、ここでも抽象化の目的でインターフェイスを使用しています。

var app : Application = Photoshop.app;
var iApp : IApplication = app as IApplication;
4

2 に答える 2

0

元のクラスがインターフェイスを実装していない場合は、運が悪いです。でも; 代わりに (テスト用に) 実装をモックすることもできます。たとえば、mockalate ( http://mockolate.org/ ) を使用します。

于 2013-06-19T11:30:32.923 に答える
0

クラスではなく、定義されている変数で行う必要があります

var t:Application = new Application();
var iApp:IApplication = t as IApplication
于 2013-06-19T07:53:50.200 に答える