我有一个包含简化内容的配置文件(它包含更多常量),如下所示:
export const appTitle = "Drzewo wyboru"
export const warnings ={
missing:" Kryterium"
duplicate: "Duplikacja"
在测试文件中,我编写了这样的模拟:
jest.mock('../../../src/config',()=>({AppTitle:'abc123test'}));
问题是配置文件中的其他项目也是正确渲染测试组件所必需的 - 所以这个模拟破坏了测试。
我已经阅读了
jest.requireActual
的可能用途,但它适用于对象,并且在配置中我有松散的项目。
我怎样才能只模拟这一项,而使其余的保持不变而不改变我的配置文件的结构?
您可以对您的模块进行部分模拟:
jest.mock('../../../src/config',() => {
const originalModule = jest.requireActual('../../../src/config');
return {
__esModule: true,
...originalModule,
AppTitle: 'abc123test',
};
});
更多信息可以在官方文档这里找到。
(你的例子表明你想模拟
AppTitle
,但实际模块包含appTitle
,这是一个不同的属性,我不确定这是否是一个错误,但如果是的话我可以更新我的答案)