Jest模拟一个对象

20

我需要模拟一个对象,而不是像通常一样模拟函数。 我已经 -

//config.js . 
export default {
   foo: 'bar'
}

我已经尝试过 -
import config from './config';
jest.mock('./config');
config.mockReturnValue({
   foo: 'zed'
})

also -

import config from './config';
jest.mock('./config');
config.mockImplentation(() => ({
   foo: 'zed'
}));

但是它并没有嘲笑任何东西,我像往常一样获取配置文件。

我做错了什么?


1
这对你有用吗?jest.mock('./config', () => ({ foo: 'zed' })); - Jamie Dixon
3个回答

25
< p > jest.mock 的第二个参数可以接受一个 factory,你可以使用它来返回你想要模拟的对象

jest.mock('./config', () => ({ foo: 'zed' }))

或者您可以修改该对象:

import config from './config';
config.foo = 'zed'

你这种方法的问题是只适用于返回函数的模块。

Jest 文档 - jest.mock(moduleName, factory, options)


你的回答救了我的一天,结果原来非常简单,非常感谢。 - Viet Nguyen

4

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接