0
我使用Jasmine
對我的離子應用進行了單元測試。我有一個服務函數來處理文件上傳。測試範圍在JavaScript中的函數的範圍內的虛擬範圍
fileUpload(filePath: string,apiEndpoint: string){
const fileTransfer = new Transfer();
let fileName = filePath.substr(filePath.lastIndexOf('/') + 1);
let options = Object.assign(this.httpHeader(),{chunkedMode: false, fileName: fileName});
return fileTransfer.upload(filePath, apiEndpoint, options)
.then((data) => {
return data;
}).catch(this.handleError);
}
fileTransfer
的範圍是在函數內部,所以它不可用在測試中。 fileTransfer.upload
調用會失敗,因爲它是一個cordova
庫。這是我能想到的
it('updateImage updates the image of user',(done)=>{
auth.fileUpload("path","url").then((data)=>{
done();
})
})
一個可能的解決方案是this.fileTransfer = new Transfer();
。有沒有其他的方式來嘲笑圖書館或攔截它?
我得到這個錯誤''錯誤::轉讓()方法不存在從'' –
raj
你在哪裏找到'Transfer'?不是全球? –
我有我的服務,我正在測試。 ''從'離子本土'導入{Transfer}; '' – raj