模拟 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)
}
希望对您有所帮助!
所以我想知道 - 一直在为 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)
}
希望对您有所帮助!