我正在将 Dynamodb 用于我正在编写的 api 服务。我开始编写测试,我发现没有命令(或查询)会破坏表中的所有“项目”。我正在使用 vogels 访问 dynamodb。
我通常在每次测试前清洁 table 。鉴于没有删除表中所有项目的单个命令(或查询),我该怎么做?
如果我一个一个地删除每个项目,测试就会在所有项目被删除之前开始执行。
最佳答案
CRUD 操作在 DynamoDB 中是原子的。没有可用于删除 DynamoDB 表中所有项目的 API。
解决方案1:
推荐的最佳解决方案是删除该表并重新创建它。
解决方案2:
使用 batchWriteItem 和 DeleteRequest 一次性删除多个项目。批量写入的最大请求数为 25 项。
等待:-
执行删除表后,请等待资源不可用。同样,执行create table后,需要等待资源可用。
var params = {
TableName: 'STRING_VALUE' /* required */
};
dynamodb.waitFor('tableNotExists', params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Waits for the tableNotExists state by periodically calling the underlying DynamoDB.describeTable() operation every 20 seconds (at most 25 times).
关于mocha.js - 使用 mocha 使用本地 dynamodb 编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45229344/