首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Fetch-Mock返回测试Blob

使用Fetch-Mock返回测试Blob
EN

Stack Overflow用户
提问于 2018-10-10 20:29:58
回答 1查看 3.3K关注 0票数 6

我有一个fetch,它从服务器接收一个文件,并且我试图用fetch-mock来模拟我的测试的提取。

使用这段代码,我可以模拟端点并将blob放在正文中:

代码语言:javascript
复制
const blob = new Blob(['a', 'b', 'c', 'd']);
fetchMock.once('*', {body: blob}, {sendAsJson: false});

正在测试的代码是:

代码语言:javascript
复制
fetch(url).then( ( response ) => {
            console.log(response);
            return response.blob();
        } ).then( ( blob ) => {
            console.log(blob);
        } )

我可以看到,这个块位于请求体上。

代码语言:javascript
复制
Body {
    url: '/mock/url',
    status: 200,
    statusText: 'OK',
    headers: Headers { _headers: {} },
    ok: true,
    body: Blob {},
    bodyUsed: false,
    size: 0,
    timeout: 0,
    _raw: [],
    _abort: false }

但是运行测试会引发错误:

代码语言:javascript
复制
    TypeError: response.blob is not a function

使用服务器运行代码将有效的Blob返回到最终的.then中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-11 14:31:04

因此,解决方案是fetch-mocknode-fetch具有对等依赖关系,这是在jest测试期间使用的。我有一个旧版本的node-fetch被另一个库拉进来了。

因此,直接要求在我的package.json中使用最新的package.json解决了这个问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52748333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档