由于我们将应用程序中的flex sdk升级到4.10,因此我们在运行使用mockolate的单元测试时遇到了验证错误。
在模拟方法签名中使用ByteArray
的接口时,似乎会出现这种情况。
示例界面:
public interface IFileSystemHelper {
function loadFileContents(path:String):ByteArray;
}
示例测试类:
public class SomeTest {
[Rule]
public var mockolateRule:MockolateRule = new MockolateRule();
[Mock]
public var fileHelper:IFileSystemHelper;
public function SomeTest() {
}
[Test]
public function testMethod():void {
// ...
}
}
使用flexmojos 6.0.1编译并运行测试时,会抛出以下错误:
VerifyError:错误#1053:非法覆盖 IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED in mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED
我最初的怀疑是playerglobal(或者我们的情况下是airglobal)的sdk版本问题所以我用sdk 4.10重新编译了mockolate(和flexunit),没有任何结果。
似乎唯一有效的方法是从方法签名中删除ByteArray类型......但这不是一个真正的选项:-)(这在以前从来就不是问题)
是否有人遇到类似问题?
由于
答案 0 :(得分:0)
使用不同版本的sdk编译应用程序的不同部分时,通常会发生此问题。
我建议看一下“mvn dependency:tree”的输出,因为它应该输出所有依赖项(直接和传递的)。也许这可以帮助您找到错误版本的来源。