模拟 Lambda Invoke 的特定调用,尤其是在链接调用时

Mocking specific invocation of Lambda Invoke especially when chaining invocations

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

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

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

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

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

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

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

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

希望对您有所帮助!