Actionscript 3 用mockole模拟FileReference.data?
我正试图在一个flex项目中模拟FileReference 去掉一些属性,比如名称和大小,效果很好,但数据就是不起作用。 下面是说明问题的代码:Actionscript 3 用mockole模拟FileReference.data?,actionscript-3,apache-flex,unit-testing,flexunit,mockolate,Actionscript 3,Apache Flex,Unit Testing,Flexunit,Mockolate,我正试图在一个flex项目中模拟FileReference 去掉一些属性,比如名称和大小,效果很好,但数据就是不起作用。 下面是说明问题的代码: [Test] public function FileReferenceMockTest():void { var frMock:FileReference = nice(FileReference); var bytes:ByteArray = new ByteArray(); stub(frMock).getter("dat
[Test]
public function FileReferenceMockTest():void {
var frMock:FileReference = nice(FileReference);
var bytes:ByteArray = new ByteArray();
stub(frMock).getter("data").returns(bytes);
stub(frMock).getter("name").returns("filename");
assertThat(frMock.name, equalTo("filename")); // works
assertThat(frMock.data, sameInstance(bytes)); // Fails and says that frMock.data is null
}
如果我在调试器中设置断点并选中frMock,则如下所示:
frMock
[inherited]
data = null
creationDate = null
creator = null
modificationDate = null
name = "filename"
__proxy__ = InterceptorProxyListener
...
如您所见,模拟对数据的处理方式不同
我已经为这个问题绞尽脑汁好几个小时了,真的需要一些帮助来解决这个问题
更新:该代码在作为Flex库项目或Flex项目(Air)运行时工作。当代码在浏览器插件中运行时,它就会失败。 在库项目中的调试器中进行检查也会显示数据属性没有嵌套在[Inherited]中,而是与其他属性位于同一级别 更新:
我在URLLoader中遇到了同样的问题,但这次正好相反。只有在浏览器插件中运行测试时,才会模拟URLLoader。
由于我正在创建一个类来处理本地和远程文件加载,使用FileReference或URLLoader,具体取决于输入,因此我无法完全对该类进行单元测试:(