Справочная информация:
Я создал таблицу Dynamo DB и заполнил ее. У меня есть некоторый код для чтения элемента в файле с именем readItem.js, который работает, когда я запускаю его автономно, но НЕ работает, когда я запускаю его как тестовый пример Mocha.
Есть идеи, почему код не работает должным образом внутри контрольного примера it ()?
В автономном режиме я запускаю приложение так:
node readItem.js
readItem.js:
var AWS = require("aws-sdk");
AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000"
});
var docClient = new AWS.DynamoDB.DocumentClient();
var table = "Movies";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName: table,
Key:{
"year": year,
"title": title
}
};
docClient.get(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
}
});
Однако, когда я запускаю его внутри тестового примера Mocha, функция обратного вызова при вызове docClient.get () не вызывается, т. Е .:
docClient.get(params, function(err, data) { ...// Not being invoked });
Вот как я структурировал код в качестве тестового примера. Я вызываю тест с:
npm run test
Где "test" определен в моем package.json как:
"scripts": {
"test": "./node_modules/.bin/mocha --recursive --reporter spec --ui bdd test/"
}
Код тестового примера:
const AWS = require('aws-sdk');
AWS.config.update({
region: "us-west-2",
endpoint: "http://localhost:8000"
});
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
let table = "Movies";
let year = 2015;
let title = "The Big New Movie";
let params = {
TableName: table,
Key:{
"year": year,
"title": title
}
};
describe('DynamoDB Tests', function() {
it("Read Item", function() {
try {
docClient.get(params, function (err,data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
}
});
} catch (err) {
console.log("ERROR:"+ err);
}
});
});