我有一个看起来像这样的函数:
function connect() {
const secret = 'secret';
const key = 'key';
const region = 'region';
const client = new AWS.DynamoDB({
secret,
key,
region
});'
return new AWS.DynamoDB.DocumentClient({ service: client })
}
我想测试连接功能。我已经像这样 mock 了 DynamoDB 构造函数:
// See https://stackoverflow.com/questions/47606545/mock-a-dependencys-constructor-jest
jest.mock('aws-sdk', () => {
const DynamoDB = jest.fn().mockImplementation(() => {
return {};
});
return {
DynamoDB,
};
});
然而,这意味着
DocumentClient
构造函数失败。我如何 mock 它?
最佳答案
这对我有用:
const mockDynamoDbPut = jest.fn().mockImplementation(() => {
return {
promise() {
return Promise.resolve({});
}
};
});
jest.doMock('aws-sdk', () => {
return {
DynamoDB: jest.fn(() => ({
DocumentClient: jest.fn(() => ({
put: mockDynamoDbPut
}))
}))
};
});
我希望它对你也有帮助。
问候,
大卫。
关于typescript - 使用 jest 模拟 AWS.DynamoDB.DocumentClient 的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811178/