我正在运行一个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