有没有办法存储dynamodb对象进行单元测试

时间:2017-09-10 18:52:04

标签: java unit-testing amazon-web-services amazon-dynamodb

我正在运行一个lambda函数,它在代码中的某个时刻从DynamoDb接收以下对象:

ItemCollection<ScanOutcome>

然后我运行此函数传入此对象,我想为它实现单元测试:

public String deleteItems(ItemCollection<ScanOutcome> items) {
    ...
    Iterator<Item> iterator = items.iterator();
    while (iterator.hasNext()) {
        Item item = iterator.next();
        Object id = item.get("Id");
        DeleteItemSpec itemSpec = new DeleteItemSpec().withPrimaryKey("Id", id);
        someDynamoTable.deleteItem(itemSpec);
        ...
    }
    ...
}

问题在于我很难重新创建一个&#39; ItemCollection&#39;的测试版本。在运行时。我想知道是否相反,我可以通过序列化来保存一个,并将其存储在本地?然后在单元测试期间在运行时重新实例化它?

与Javascript中的方式类似,我可以将JSON对象表示存储到text / json文件中,稍后再重复使用。

这是推荐/明智的做法吗?解决这类问题的理想方法是什么?

另一种解决方案是在本地运行dynamoDb实例,如下所示:Easier DynamoDB local testing

0 个答案:

没有答案