2

所以我想知道 - 一直在为 Node / Jasmine 使用 aws-sdk-mock 库。

这个特定的库允许您模拟服务方法调用。然而,当尝试模拟多次调用的方法时,这似乎是一个问题,但提供了不同的参数(因此调用了不同的 lambda)。

Aws.mock('lambda', 'invoke', function(params, callback){
callback(null, {})
}

这将模拟每个调用调用,这确实不灵活,我认为有用的是查看传递给它的参数是否包含特定值。

现在我不会被绑定到我不相信的 AWS.mock 框架,所以如果有人对如何处理这个有任何指示,那就太好了。请参阅下面的调用流程。

自定义函数(从测试调用)-> 自定义函数(调用调用)

4

1 回答 1

1

我发现解决方案是检查被模拟的 lambda 的参数。例如,如果您有一个名为 lambdaOne 的 lambda 和一个名为 lambdaTwo 的 lambda,您的模拟将如下所示:

Aws.mock('lambda', 'invoke', function(params, callback){
    if (params.FunctioName === 'lambdaOne'){
        callback(null, lambdaOneResponse)
    }
    else if (params.FunctioName === 'lambdaTwo')
        callback(null, lambdaTwoResponse) 
}

我希望这有帮助!

于 2019-05-19T03:17:58.920 回答