自从我们将应用程序中的 flex sdk 升级到 4.10 后,我们在运行使用 mockolate 的单元测试时遇到了验证错误。
它们似乎发生在模拟ByteArray
在方法签名中使用 a 的接口时。
示例界面:
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:在 mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED 中非法覆盖 IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED
我最初的怀疑是 playerglobal(或我们的例子中的 airglobal)的 sdk 版本问题,所以我用 sdk 4.10 重新编译了 mockolate(和 flexunit),没有任何结果。
唯一可行的方法是从方法签名中删除 ByteArray 类型......但这并不是一个真正的选择:-)(这在以前从来不是问题)
有没有人遇到过类似的问题?
谢谢