2017-12-27 335 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

相關問題