我有一个模拟版本aws-sdk,它在我的测试中运行良好:
jest.mock("aws-sdk", () => {
return {
Credentials: jest.fn().mockImplementation(() => ({})),
Config: jest.fn().mockImplementation(() => ({})),
config: {
update: jest.fn(),
},
S3: jest.fn().mockImplementation(() => ({
getSignedUrlPromise: awsGetSignedUrlMock,
})),
SQS: jest.fn().mockImplementation(() => ({})),
};
});
然而,我的许多测试都使用了模拟 AWS 开发工具包,并且我不想不必要地重复模拟代码。但是,如果我将函数移动到单独的文件中并导入它,这将失败:
在我的testSupport.ts文件中:
export const mockAwsSdk = () => {
return {
Credentials: jest.fn().mockImplementation(() => ({})),
Config: jest.fn().mockImplementation(() => ({})),
config: {
update: jest.fn(),
},
S3: jest.fn().mockImplementation(() => ({
getSignedUrlPromise: awsGetSignedUrlMock,
})),
SQS: jest.fn().mockImplementation(() => ({})),
};
};
在测试文件中:
jest.mock("aws-sdk", mockAwsSdk);
这失败了:
ReferenceError: Cannot access 'testSupport_1' before initialization
我尝试了各种解决方案,包括制作一个接受jest实例的父函数,但我仍然无法让它工作。
如何在多个测试之间共享笑话模拟?
忽然笑
相关分类