我正在使用aws-sdk v3中的Amazon 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));
我曾试图模仿Amazon DynamoDB跟随Jest文档,但它在本地调用真实的的Amazon DynamoDB。
如何在Nodejs中模拟这些“@aws-sdk/client-dynamodb”包?
请在Nodejs中提供一个示例!
4条答案
按热度按时间zdwk9cvp1#
这个答案可能来得有点晚:)目前有两个非常有用的包来处理aws dynamodb模拟
@aws-sdk/client-dynamodb
在我的例子中,我最终使用了第二个选项,
jest-dynalite
,因为它不需要java,而且很容易配置:)eh57zj3b2#
您可以将AWSMock与sinon一起使用,并根据需要模拟方法和响应。它可以很好地处理jest,而且它不调用真正的数据库。
afdcj2ne3#
您应该安装aws dynamodb jar并在dynamodb客户端中使用一个端点。
你可以设置一个docker容器来运行dynamodb:
当您为测试设置dynamodb客户端时,请继续使用端点:
在运行测试之后,可以在
localhost:8000
上的管理员UI上检查结果。ekqde3dh4#
AWS recommends使用aws-sdk-client-mock模拟DynamoDB和AWS的其余部分,并随模块附带文档。
安装aws-sdk-client-mock和可能的aws-sdk-client-mock-jest
导入模块
创建模拟。每次测试后复位
定义响应
测试呼叫