ASMock を Flexunit4.1 と組み合わせて使用し、プロジェクトの自動テストを作成しています。ただし、flash.net.NetGroup をモックしようとすると、次のエラー メッセージが表示されます。
VerifyError: Error #1053: Illegal override of NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916 in asmock.generated.NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916.
[ルール] に次のように追加した後:
[Rule] public var includeMocks:IncludeMocksRule = new IncludeMocksRule([
NetGroup
]);
このエラーは、異なるバージョンでのコンパイルに関係していると考えたので (NetGroup はそれほど前に導入されていません)、ASMock とそのすべての依存プロジェクトをそれぞれの SVN/Git リポジトリからプルし、すべてを再構築しました。プロジェクトのリストは次のとおりです。
- ASMock
- ASMockFlexUnit4
- ASMockFlexUnit41
- フレミット
- FLexUnit (元の Adobe のもの、Flexunit4 で使用)
- フレックスユニット4
- FlexUnit4UIListener
- FLoxy
- ハムクレスト
これらはすべて私のワークスペースにロードされ、互いに動的にリンクされています。これで、ビルド前の SWC ファイルへの依存関係はまったくなくなり、すべてのプロジェクトは現在のコンパイラと 4.6.0 SDK を使用してビルドされます。(これらのプロジェクトの一部は、SDK 2.x 以降再コンパイルされていないため、非常に期待していました)。
そのため、テストを再実行したところ、次のエラーが発生しました。
return types dont match
virt * flash.net::NetGroup/set receiveMode()
over void asmock.generated::NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916/set receiveMode()
VerifyError: Error #1053: Illegal override of NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916 in asmock.generated.NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916.
つまり、SDK のバージョンが異なる SWC ファイルに問題があるわけではないようです。プロジェクトを適切にテストするために NetGroups (およびカスタム子クラス) をモックしたいので、この問題を解決してください。
その他の情報: すべてのプロジェクトで、最低限必要な Flash Player は 11.1.0 (SDK 4.6.0 の最小要件) に設定されています。
前もって感謝します