我一直在结合使用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是不久前引入的),所以我从它们各自的SVN/Git存储库中提取了ASMock及其所有的依赖项目,并重新构建了它们。项目清单如下:
使用)
所有这些都加载在我的工作区中,并动态地链接到彼此。现在我有了,没有依赖于,任何预构建的SWC文件都是使用当前编译器和4.6.0SDK构建的。(其中一些项目在SDK2.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 (和自定义子类)来正确地测试我的项目。
杂项信息:对于所有项目,最低要求的闪存播放器设置为11.1.0 (SDK4.6.0的最低要求)。
提前感谢
发布于 2012-07-01 11:15:35
TBH,我已经有一段时间没有在asMock上工作了(我不再参与任何Flash工作了),但我会尽我所能提供帮助的。
话虽如此,我的第一件事是NetGroup可能被标记为final。通过字节码覆盖最终类(和方法)与不同的Flash版本不同,但它在FP10中停止工作。
如果所有这些都失败了,我建议创建它的抽象(INetGroupFacade),并视此而定。
https://stackoverflow.com/questions/9772656
复制相似问题