Jest + aws-sdk测试SQS客户端

时间:2018-04-20 20:30:53

标签: unit-testing amazon-web-services aws-sdk amazon-sqs jest

我正在尝试为我所拥有的服务编写单元测试。该服务如下所示:

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客户端函数的模拟版本。

0 个答案:

没有答案