自从我们将应用程序中的flex升级到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 {
// ...
}
}在用Flexmojos6.0.1编译和运行测试时,会引发以下错误:
错误#1053: IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED在mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED中的非法覆盖
我最初的怀疑是playerglobal (或者在我们的例子中是airglobal )的sdk版本问题,所以我用SDK4.10重新编译了mockolate (和any ),没有任何结果。
唯一可行的方法是从方法签名中删除ByteArray类型.但这不是一个真正的选择:-) (这从来不是一个问题)
有没有人遇到过类似的问题?
谢谢
发布于 2014-01-08 14:42:36
这个问题通常发生在用不同版本的sdk编译应用程序的不同部分时。
我建议查看"mvn依赖关系:树“的输出,因为它应该输出所有依赖项(直接依赖项和传递依赖项)。也许这将帮助您找到错误的版本从哪里开始。
https://stackoverflow.com/questions/20975370
复制相似问题