【发布时间】:2012-03-19 15:10:33
【问题描述】:
我一直在将 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
- 腘绳肌
这些都加载到我的工作区并动态链接到彼此。现在,我在 any 预构建 SWC 文件上留下了 no 依赖项,并且所有项目都是使用当前编译器和 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 的最低要求)。
提前致谢
【问题讨论】:
-
现在我“解决”了这个问题,方法是在 Flemit 的 PropertInfo 中编辑构造函数以返回我们特定方法名称的星形返回类型。这远不是解决此问题的最优雅方法,因此我仍在寻找有关导致此问题的原因以及如何更优雅地解决此问题的良好见解。
标签: apache-flex actionscript verifyerror asmock