我正在尝试为我所拥有的服务编写单元测试。该服务如下所示:
class SQSHealthCheckStrategy {
constructor(private client: AWS.SQS) {}
private alias = "foo";
async check(): Promise<boolean> {
try {
const params = {
QueueName: process.env.AWS_QUEUE_URL,
};
const response = await this.client.getQueueUrl(params).promise();
return (response.$response.error) ? false : true;
} catch(err) { //do something}
}
}
所以在我的测试中,我需要构造一个SQSHealthCheckStrategy类型的对象,我需要传入一个模拟版本的SQS客户端。我尝试通过在根级aws-sdk.js
文件夹中添加__mocks__
文件进行手动模拟,该文件只执行
module.exports = jest.genMockFromModule("aws-sdk");
。还尝试使用aws-sdk-mocks
,但无法弄清楚如何创建SQS客户端的模拟版本,而不仅仅是测试其中一个SQS客户端函数的模拟版本。