ASMock:flash.net.NetGroup的VerifyError

时间:2012-03-19 15:10:34

标签: flex actionscript verifyerror asmock

我一直在将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及其所有依赖项目并重建它们。项目清单是:

  • ASMock
  • ASMockFlexUnit4
  • ASMockFlexUnit41
  • FLemit
  • FLexUnit(原始的Adobe,由Flexunit4使用)
  • FlexUnit4中
  • FlexUnit4UIListener
  • FLoxy
  • hamcrest

这些都在我的工作区中加载并动态链接到彼此。现在我在任何预构建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的最低要求)。

提前致谢

1 个答案:

答案 0 :(得分:0)

TBH,我已经有一段时间没有参加过forMock了(我不再参与任何Flash工作了),但我会尽我所能帮助。

话虽如此,对我跳出的第一件事是NetGroup可以被标记为最终。通过字节码覆盖最终类(和方法)在各种Flash Player版本上表现不同,但它在FP10中停止工作。

如果所有其他方法都失败了,我建议创建一个抽象(INetGroupFacade)并依赖于此。