所以我在想-一直在将aws-sdk-mock库用于Node / Jasmine。
这个特定的库允许您模拟服务方法调用。但是,当尝试模拟不止一次的方法但又提供了不同的参数(从而调用了不同的lambda)时,这似乎是一个问题。
Aws.mock('lambda', 'invoke', function(params, callback){
callback(null, {})
}
这将模拟每次调用,但实际上并不灵活,我认为有用的是查看传递给它的参数是否包含特定值。
现在,我将不再被我不相信的AWS.mock框架所束缚,因此,如果有人有任何如何处理此问题的指针,那将是很棒的。请参见下面的调用流程。
自定义函数(从测试中调用)->自定义函数(称为调用)
答案 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)
}
我希望这会有所帮助!