1

我一直在将 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
  • 弗莱特
  • FlexUnit(原 Adob​​e 之一,Flexunit4 使用)
  • 弹性单元4
  • FlexUnit4UIListener
  • 弗洛西
  • 腘绳肌

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

提前致谢

4

1 回答 1

0

TBH,我已经有一段时间没有在 asMock 上工作了(我不再参与任何 Flash 工作),但我会尽我所能提供帮助。

话虽如此,我首先想到的是NetGroup可以标记为最终。通过字节码覆盖最终类(和方法)在各种 Flash Player 版本中表现不同,但它在 FP10 中停止工作。

如果一切都失败了,我建议创建它的抽象(INetGroupFacade)并依赖于它。

于 2012-07-01T11:15:35.227 回答