2016-10-04 122 views
1

我正在開發一個測試平臺,我想測試一個文件上傳服務。 有什麼辦法來讀取一個二進制文件,並追加到FORMDATA用Karma-Jasmine讀取二進制文件

var file = someModule.readFile('test-data/roof-top.tif'); 

var formData = new FormData(); 

formData.append('file',file, 'uploadedFile'); 

或者也許我應該建立一個靜態的文件服務器,並做一些Ajax調用來檢索我的二進制文件?

回答

0

你可以嘗試編碼你的二進制數據爲文本(base64或字節數組)。然後,您可以像瀏覽任何其他測試數據一樣將其作爲JavaScript文件加載到瀏覽器中。

除此之外,建立一個文件服務器可能是一條路。你實際上可以得到Karma to serve static files你不需要自己建立一個服務器。

+0

的一些Blob對象,這非常有幫助。 我配置了karma來提供靜態文件 –

0

您需要節點的FileSystem讀取文件,然後創建Blob這是本地JS對象,然後添加文件到FORMDATA

以下情形將導致類似的東西:

const fs = require('fs'); 
var formData = new FormData(); 

fs.readFile('test-data/roof-top.tif', function(err, data){ 

    var blob = new Blob(data); 
    formData.append('file', blob, 'uploadedFile'); 

}); 
+1

我不能在客戶端測試代碼中使用fs,Jasmine代碼在瀏覽器中執行 –

+0

我以爲你在node.js中這樣做。如果用戶沒有選擇要上傳的文件,則無法從JS腳本打開文件。 –

+0

我想我會創建一個簡單的文件服務器,並從Ajax響應 –