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

时间:2018-11-22 21:36:32

标签: aws-lambda aws-sdk aws-sdk-mock

所以我在想-一直在将aws-sdk-mock库用于Node / Jasmine。

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

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

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

现在,我将不再被我不相信的AWS.mock框架所束缚,因此,如果有人有任何如何处理此问题的指针,那将是很棒的。请参见下面的调用流程。

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

1 个答案:

答案 0 :(得分:0)

我发现此问题的解决方案是检查要模拟的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) 
}

我希望这会有所帮助!