使用mocha用本地dynamodb编写测试

时间:2017-07-21 05:04:57

标签: mocha amazon-dynamodb chai

我正在使用Dynamodb进行api服务。我开始编写测试,我发现没有命令(或查询)会破坏所有"项目"在一张桌子里。我正在使用vogels访问dynamodb。

我经常在每次测试前清理桌子。如果没有单个命令(或查询)删除表中的所有项目,我该怎么做呢?

如果我逐个删除每个项目,测试会在删除所有项目之前开始执行。

1 个答案:

答案 0 :(得分:1)

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
});
  

通过定期调用,等待tableNotExists状态   基础DynamoDB.describeTable()操作每20秒(at   最多25次)。