Hau*_*Eck 6 javascript fetch-mock
我有一个从服务器接收文件的提取,我试图用fetch-mock.
使用此代码,我可以模拟端点并将 blob 放入正文中:
const blob = new Blob(['a', 'b', 'c', 'd']);
fetchMock.once('*', {body: blob}, {sendAsJson: false});
Run Code Online (Sandbox Code Playgroud)
正在测试的代码是:
fetch(url).then( ( response ) => {
console.log(response);
return response.blob();
} ).then( ( blob ) => {
console.log(blob);
} )
Run Code Online (Sandbox Code Playgroud)
我可以看到 Blob 在请求的正文中
Body {
url: '/mock/url',
status: 200,
statusText: 'OK',
headers: Headers { _headers: {} },
ok: true,
body: Blob {},
bodyUsed: false,
size: 0,
timeout: 0,
_raw: [],
_abort: false }
Run Code Online (Sandbox Code Playgroud)
但是运行测试会抛出错误:
TypeError: response.blob is not a function
Run Code Online (Sandbox Code Playgroud)
使用服务器运行代码将一个有效的 Blob 返回到最终的.then.
因此,解决方案是在玩笑测试期间使用fetch-mock对等依赖项。我有另一个图书馆拉来node-fetch的旧版本。node-fetch
node-fetch所以直接要求我的最新版本package.json解决了这个问题。
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |