node.js - 您如何指定模拟 AWS Lambda 背后的代码
问题描述
我目前正处于对我的 lambda 进行单元测试的阶段,这是我第一次这样做,所以请多多包涵。
我已经对此进行了研究,并且我想我设法确定了我应该使用哪个包以及哪种方法。
据我所知,aws-sdk-mock
是要走的路。它似乎完整且有据可查,因此在这个方向上没有问题。我唯一遇到的问题是缺少 AWS Lambda Invoke 模拟的文档。
我遇到的主要问题是模拟一个特定函数,其代码与测试存储在同一个项目中。
即:我有一个lambda.ts
:
export const handler: APIGatewayProxyHandlerV2 = async (event: any) => {
const body = event.body;
//do things with body
return {
statusCode:200,
body: "OK"
}
}
我如何正确地模拟这个?我开始了一个lambda.test.ts
看起来像这样的:
import AWSMock from "aws-sdk-mock"
import AWS from "aws-sdk"
beforeAll(async (done) => {
//get requires env vars
done()
})
describe("Calling lambda", () => {
it("should reject API call because of missing arguments", async () => {
AWSMock.setSDKInstance(AWS)
AWSMock.mock("Lambda", "invoke", async (params, callback) => {
const lambda = new AWS.Lambda()
await lambda.invoke({
FunctionName: 'lambda',
...?
}).promise()
})
})
})
我不知道如何表明这个模拟 lambda 背后的代码在某处可用。
在此先感谢您的帮助!
解决方案
推荐阅读
- php - Limit output in foreach
- api - Relation#as will change behavior in 4.0. Use `map_to` instead
- linux - 将十六进制地址直接分配给 LKM 代码中的指针,但得到不同的结果
- powerbi - Count unique values of filtered table
- javascript - can i put schedule in fullcalendar as ajax?
- php - How to get JPG from string when it doesn't have http? php
- postgresql - Indexing a jsonb array in Postgres
- java - 如何创建从内存到数据库的后写缓存?
- c# - Avoid OnResultExecuted Filter on ASP.NET MVC 5 application's Action
- python - 创建上下文后获取python守护进程pid