Насмешливый FileReference.data с mockolate?
Я пытаюсь смоделировать FileReference в проекте Flex, над которым я работаю.
Удаление некоторых свойств, таких как имя и размер, работает нормально, но данные просто отказываются работать. Вот код, который иллюстрирует проблему:
[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, в зависимости от ввода, я фактически не могу полностью протестировать этот класс.:(