gpt4 book ai didi

javascript - 我怎样才能 Jest 模拟一个图书馆?

转载 作者:行者123 更新时间:2023-11-30 14:09:42 25 4
gpt4 key购买 nike

我试图在 Jest 测试中模拟文件类型库。在我的 javascript 文件中,我按以下方式使用这个库:

import * as fileType from 'file-type';

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

然后,在我的 Jest 测试中,我正在做:

jest.mock('file-type');
import * as fileType from 'file-type';

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

fileType = jest.fn();
fileType.mockReturnValue({ ext: 'jpg' });

但是,我收到错误消息 "fileType"is read-only。

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

最佳答案

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

jest.mock('fileType', ()=> () => ({
ext: 'jpg'
}))

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

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

import fileType from 'fileType'
jest.mock('fileType', ()=> jest.fn())

fileType.mockImplementation(() => ({
ext: 'jpg'
}))

关于javascript - 我怎样才能 Jest 模拟一个图书馆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54705041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com