我一直在将ASMock与Flexunit4.1结合使用,为我的项目创建自动化测试。但是,当我尝试模拟flash.net.NetGroup时,我收到以下错误消息:
VerifyError: Error #1053: Illegal override of NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916 in asmock.generated.NetGroup6B54B8B32216E97DF75A0EBB17879E26E9B81916.
之后我将它添加到[Rule]中:
[Rule] public var includeMocks:IncludeMocksRule = new IncludeMocksRule([
NetGroup
]);
我认为这个错误与使用不同版本进行编译有关(NetGroup已经很久以前就已经推出了)所以我从他们各自的SVN / Git存储库中提取了ASMock及其所有依赖项目并重建它们。项目清单是:
这些都在我的工作区中加载并动态链接到彼此。现在我在任何预构建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播放器设置为11.1.0(SDK 4.6.0的最低要求)。
提前致谢
答案 0 :(得分:0)
TBH,我已经有一段时间没有参加过forMock了(我不再参与任何Flash工作了),但我会尽我所能帮助。
话虽如此,对我跳出的第一件事是NetGroup
可以被标记为最终。通过字节码覆盖最终类(和方法)在各种Flash Player版本上表现不同,但它在FP10中停止工作。
如果所有其他方法都失败了,我建议创建一个抽象(INetGroupFacade
)并依赖于此。