首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么能在开玩笑时嘲笑一个库呢?

我怎么能在开玩笑时嘲笑一个库呢?
EN

Stack Overflow用户
提问于 2019-02-15 16:13:12
回答 1查看 7K关注 0票数 3

我正在尝试模拟jest测试中的文件类型库。在我的javascript文件中,我通过以下方式使用这个库:

代码语言:javascript
复制
import * as fileType from 'file-type';

....
const uploadedFileType = fileType(intArray);

然后,在我的jest测试中,我执行以下操作:

代码语言:javascript
复制
jest.mock('file-type');
import * as fileType from 'file-type';

然后尝试以以下方式模拟响应:

代码语言:javascript
复制
fileType = jest.fn();
fileType.mockReturnValue({ ext: 'jpg' });

但是,我得到了错误"fileType" is read-only.

有谁知道我做错了什么吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-02-15 16:56:59

如果你在所有测试中只需要相同的返回类型,你可以这样模拟它

代码语言:javascript
复制
jest.mock('fileType', ()=> () => ({
  ext: 'jpg'
}))

这将模拟模块,因此fileType()将始终返回{ext: 'jpg'}

如果您在测试期间需要不同的返回值,则需要模拟该模块,以便它返回一个间谍,您可以在稍后的测试中使用mockImplementation设置模拟结果

代码语言:javascript
复制
import fileType from 'fileType'
jest.mock('fileType', ()=> jest.fn())

fileType.mockImplementation(() => ({
  ext: 'jpg'
}))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54705041

复制
相关文章

相似问题

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