我得到了以下流程:
由于这个流程,我创建了一个集成测试,首先将文件放到S3。
之后,我检查了由Lambda函数更新的DynamoDB表上的记录。
当我搜索我的记录时出现问题,实际上我找不到它,因为有一些时间间隔我需要等待表更新。在第二次运行中,我能够看到之前测试运行的记录。
我的问题是如何进行此集成测试?如何检查更新的表记录,之后需要在一段时间后使用lambda触发器调用插入。
到目前为止我尝试了什么:
这些对我来说还不够好,请建议一些更好的方法。
我的代码:
it('Writing single record to DynamoDB - when data is valid JSON and updating the DB is Succeed',
function(done) {
var putObjectParams = {
Bucket: BUCKET,
Key: FILE_KEY,
Body: 'some file content'
};
s3.putObject(putObjectParams, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(JSON.stringify(data));
}
});
var docClient = new AWS.DynamoDB.DocumentClient();
var queryParams = {
TableName: ENV + "-WFMHistoricalUnprocessedFiles",
ProjectionExpression: "filePath, ingressTime, dir, fileName",
KeyConditionExpression: "#column = :fileFullPath",
ExpressionAttributeNames: {
"#column": "filePath"
},
ExpressionAttributeValues: {
":fileFullPath": BUCKET + "/" + FILE_KEY
}
};
docClient.query(queryParams, function(err, data) {
if (err) {
console.log("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
console.log("Query succeeded.");
data.Items.forEach(function(item) {
console.log(JSON.stringify(item));
});
}
});
});