如何使用 Jest 在 Nodejs 中模拟 AWS Dynamodb v3?

时间:2021-06-14 08:49:23

标签: node.js amazon-web-services amazon-dynamodb aws-sdk

我正在将 aws-sdk v3 中的 Dynamodb 包用于 javascript。
这是我遵循的文档:https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/dynamodb-examples.html
我已经安装了“@aws-sdk/client-dynamodb”包来从代码执行 CRUD 操作。
我以这种方式从包中导入命令:

import { DynamoDBClient, PutItemCommand, DeleteItemCommand, UpdateItemCommand, GetItemCommand } from "@aws-sdk/client-dynamodb";
const dynamodbClient = new DynamoDBClient({ region: process.env.DYNAMODB_REGION, endpoint: process.env.DYNAMODB_ENDPOINT });
const result = await dynamodbClient.send(new PutItemCommand(params));

我尝试按照 Jest 文档模拟 Dynamodb,但它在本地调用了真正的 Dynamodb。

如何在 Nodejs 中模拟这些“@aws-sdk/client-dynamodb”包?
请提供 Nodejs 中的示例!

2 个答案:

答案 0 :(得分:0)

这个答案可能来得有点晚:) 目前有两个非常有用的包来处理 aws dynamodb mocks

就我的情况而言,我最终使用了第二个选项 jest-dynalite,因为它不需要 java 并且很容易配置:)

答案 1 :(得分:0)

您可以将 AWSMock 与 sinon 一起使用,并根据需要模拟方法和响应。它与 jest 配合得非常好,而且不会调用真正的数据库。