提问人:Kandarp Gandhi 提问时间:11/17/2023 更新时间:11/17/2023 访问量:13
Jest 参数化 mockImplementation
Jest Parameterize a mockImplementation
问:
我正在模拟一个模块,如下所示。我想参数化我的模拟模块返回的值,并在我的所有测试中使用它,而不是每次需要时都重新定义它。我怎样才能做到这一点?根据 https://jestjs.io/docs/jest-object#jestmockmodulename-factory-options 我无法找到该怎么做。
jest.mock<
typeof import('.../module')
>('.../module', () => {
const original = jest.requireActual<
typeof import('.../module')
>('.../module');
return {
...original,
callExternal: jest
.fn()
.mockImplementation(
(
iframe: WindowProxy,
eventTarget: Window,
id: string,
action: { functionName: string },
) => {
switch (action.functionName) {
case 'action1':
case 'action2':
case 'action3':
return Promise.resolve({ value: returnValueToBeMocked });
case 'action4':
default: {
const errorMessage = `Unimplemented function;
logError(errorMessage);
return Promise.reject(errorMessage);
}
}
},
),
};
});
如何创建一个函数并将其参数化
理想情况下,我想要这种东西
const mockModule = (mockValue)=>{ jest.mock<...above mock>}
const mock1 = mockModule(value1)
const mock2 = mockModule(value2);
describe('Feature',() =>{
it('check with mock1', ()=>{ ..... })
it('check with mock2', ()=>{ ..... })
})
不确定这是否可行
答: 暂无答案
评论