Javascript Jest从文件调用默认模拟
我的测试中有以下代码:Javascript Jest从文件调用默认模拟,javascript,reactjs,unit-testing,jestjs,Javascript,Reactjs,Unit Testing,Jestjs,我的测试中有以下代码: //app.test.js jest.mock('notistack', () => ({ useSnackbar: jest.fn(), })); jest .spyOn(notistack, 'useSnackbar') .mockImplementation(() => ({ enqueueSnackbar })); 如何将此函数移动到单个文件?我所有的测试都包含相同的函数,我认为复制粘贴这段代码是多余的。我已经尝试将此文件移动到其他文件
//app.test.js
jest.mock('notistack', () => ({
useSnackbar: jest.fn(),
}));
jest
.spyOn(notistack, 'useSnackbar')
.mockImplementation(() => ({ enqueueSnackbar }));
如何将此函数移动到单个文件?我所有的测试都包含相同的函数,我认为复制粘贴这段代码是多余的。我已经尝试将此文件移动到其他文件并生成函数,以便导入它
// helper.js
export function snackbar() {
jest.mock('notistack', () => ({
useSnackbar: jest.fn(),
}));
jest
.spyOn(notistack, 'useSnackbar')
.mockImplementation(() => ({ enqueueSnackbar }));
}
// app.test.js
import {snackbar} from 'helper.js';
snackbar();
// othercode for testing;
但每次我运行它时,它总是返回我无法监视原始值;未定义的给定值
我怎样才能正确地称呼它呢?请看一下即时文档
您可以创建一个名为\uuuuu mocks\uuuu
的文件夹,并复制要在其中模拟的模块
例如,我有一个main.js文件,其中包含:
let{Chance}=require(“Chance”);
让机会来吧;
函数createUser(){
返回{
id:chance.guid(),
name:chance.name(),
年龄:偶然。年龄(),
};
}
module.exports={createUser};
我创建了一个main.test.js文件,其中包含:
let{createUser}=require(“./main”);
测试(“创建新用户”,()=>{
让scenario=createUser();
expect(场景)。toMatchObject({
id:“zxcv”,
姓名:"富",,
年龄:20,,
});
});
现在,我可以在\uuuumocks\uuuuu/chance.js
中创建一个具有相同签名的文件来模拟我的模块chance
:
let chance={};
chance.chance=函数(){
返回{
guid:()=>“zxcv”,
名称:()=>“Foo”,
年龄:()=>20岁,
};
};
module.exports=机会;
现在,您测试的每个需要/importchance
的文件在默认情况下都将使用此模拟