如何使用 Jest 模拟从具有多个常量的配置文件中导出的仅一个常量

问题描述 投票:0回答:1

我有一个包含简化内容的配置文件(它包含更多常量),如下所示:

export const appTitle = "Drzewo wyboru"

export const warnings ={
missing:" Kryterium"
duplicate: "Duplikacja"

在测试文件中,我编写了这样的模拟:

jest.mock('../../../src/config',()=>({AppTitle:'abc123test'}));

问题是配置文件中的其他项目也是正确渲染测试组件所必需的 - 所以这个模拟破坏了测试。

我已经阅读了

jest.requireActual
的可能用途,但它适用于对象,并且在配置中我有松散的项目。

我怎样才能只模拟这一项,而使其余的保持不变而不改变我的配置文件的结构?

jestjs mocking
1个回答
1
投票

您可以对您的模块进行部分模拟:

jest.mock('../../../src/config',() => {
  const originalModule = jest.requireActual('../../../src/config');
  return {
    __esModule: true,
    ...originalModule,
    AppTitle: 'abc123test',
  };
});

更多信息可以在官方文档这里找到。

(你的例子表明你想模拟

AppTitle
,但实际模块包含
appTitle
,这是一个不同的属性,我不确定这是否是一个错误,但如果是的话我可以更新我的答案)

© www.soinside.com 2019 - 2024. All rights reserved.