2017-12-27 337 views
1

我创建的组件我想用Angular Dart的框架进行测试。当试图测试一个HTML文件对象时,它不会让我用样本图像预填充它?

当我创建我的测试文件,看来虽然,我有创建一个样本文件来测试针对的问题。

在我hirerarchy,我有:

./bird.jpg 
./image_uploader_po.dart 
./image_uploaders_test.dart 

,然后在代码中,我有

test("testing against valid image upload",() async { 
    File testImage = new File("./bird.jpg"); //improper constructor. 
    fixture.update((Component com){ 
    com.imageFile = testImage; 
    }); 
    uploaderPO = await fixture.resolvePageObject(Component); 
}); 

我的问题是,这不是镖/ IO实现文件的,而是Html实现。

我试图确定行动的最好的办法是什么这一点,打开读取访问应用到组件的实现文件的文件。

我一直在寻找的FileReader起来,但涉及存在的,这是我有问题的文件。

眼下,文件的构造是:File(List<Object> fileBits, String filename, [Map<String, Dynamic> options]);,最终不知道什么是“fileBits”应该是。

你可以找到我使用的文件类:https://api.dartlang.org/stable/1.24.3/dart-html/File-class.html

我期望的最终状态是使用一个样本图像文件将其应用到图片上传组件。

谢谢。

回答

2

你在运行测试上下文是针对网络进行,因此只镖:HTML,而不会提供镖:10。

正如你可以在Web脚本允许文件想象随意从工艺文件系统加载可能是一个巨大的安全漏洞。因此,网络对此有很多限制。

很多时候,该文件的内容不要紧,我们的测试,所以我会做这样的事情:

File testImage = new File([], "bird.jpg"); // Mock contents don't matter 

如果内容是测试重要的,你可以使用一个XHR来获得图像,或尝试内联字节。

var response = await HttpRequest.request("bird.jpg", responseType: "blob"); 
fixture.update((Component com){ 
    com.imageFile = response.response; 
}); 

希望您的组件可以读取Blob本身。如果没有,你可以尝试使用'arraybuffer'responseType来创建一个文件,但这有点复杂。

+0

多数民众赞成在知道。我不确定如何增加这些参数。我用我的测试用例。 – Fallenreaper

相关问题