#dynamo-db #aws-sdk

dynamodb-tester

一个简单的库,使您的代码对dynamodb本地测试变得容易

7个版本

0.2.2 2022年12月11日
0.2.1 2022年12月11日
0.1.3 2022年12月11日

#462 in 测试

每月 26次下载

MIT 许可证

16KB
319

DynamoDB测试器

警告!此Crate已弃用。我意识到,我真正需要的是一个可以在不同环境中使用的连接器,例如dev/test/staging/prod。请使用dynamodb-tools代替。

由于AWS提供了DynamoDB本地,我们可以在测试中利用它。然而,管理dynamodb客户端和表是繁琐的,我们需要在每次测试结束时清理,以免污染其他测试。这个Crate将帮助您创建具有唯一名称的表,然后在测试结束后拆除它们(如果需要,可以使用Drop特性)。

使用方法

首先,您需要自行下载并运行dynamodb本地。例如,我将它解压到~/bin/dynamodb_local_latest,因此我可以这样启动它

$ java -Djava.library.path=~/bin/dynamodb_local_latest/DynamoDBLocal_lib -jar ~/bin/dynamodb_local_latest/DynamoDBLocal.jar -inMemory -sharedDb

您可以将其作为服务,以便在系统启动时自动启动。

在您的测试代码中,您可以使用它如下

// first, create the LocalClient
use dynamodb_tester::LocalClient;
let lc = LocalClient::try_new(8080, "users", None).await?;
let (client, table_name) = lc.inner();
// then you could use the returned client & table_name
// to interact with dynamodb local.
let ret = client
    .put_item()
    .table_name(table_name)
    .set_item(Some(item))
    .send()
    .await?;

如果您想将其与github action集成,可以使用此操作

- name: Setup DynamoDB Local
  uses: rrainn/[email protected]
  with:
  port: 8000
  cors: '*'

有关更多详细信息,请参阅build.yml

依赖项

~21–35MB
~579K SLoC