我在文件的开头有这一行:
vi.mock('@infra/storage/s3-adapter/aws-s3.adapter');
我只能通过添加“await import(...”和“it”块内的模拟操作来解决这个问题,如下所示:
it('should returns 200 and the document added to the program', async () => {
// Arrange
const awsS3Adapter = await import(
'@infra/gateways/storage/aws-s3.adapter'
);
awsS3Adapter.AwsS3Adapter.prototype.uploadFile = vi
.fn()
.mockResolvedValue('any_file_path');
awsS3Adapter.AwsS3Adapter.prototype.getUrl = vi
.fn()
.mockResolvedValue(`any_url`);
如果我尝试在
beforeAll
中或“它”之外使用它,它不起作用。因此,每次需要模拟适配器时,我都需要在每个块中重复此代码。