我有一个简单的Jest案例,我需要在开始时创建这个表,填充它,然后运行一些测试。在所有测试完成后,我需要删除DynamoDB中的表。
我尝试使用beforeAll创建表,然后进行测试,然后使用afterAll删除表。然而,它不确定地运行,所以人口试图在创建表之前运行,或者在创建表之前尝试删除该表。
我的代码
beforeAll(() => {
await createTable();
populateTable();
//setupLDAPConnection();
});
afterAll(() => {
deleteTable();
});
describe('The program gets list of AD groups', function () {
it('should get a list of user groups in the Active Directory', async () => {
//const result = await userSyncFunction.handler(undefined);
//expect(result).to.be.an('object');
//console.log('2');
});
});
populateTable = () => {
agents.forEach((agent) => {
docClient.put(agent, (err, data) => {
if (err) {
console.log("Error", err);
} else {
console.log("Agent inserted", data);
}
});
});
};
createTable = async () => {
dynamoDb.createTable(agent_table, (err, data) => {
if (err) {
console.log("Error", err);
} else {
console.log("Table created");
}
});
};
deleteTable = () => {
dynamoDb.deleteTable( { TableName: 'AGENT_LIST' }, function(err, data) {
if (err)
console.log(err, err.stack);
else {
console.log('Table deleted');
}
});
};有什么想法吗?
谢谢。
发布于 2019-07-16 22:02:13
beforeAll中的函数应该是async,而不是createTable,因为您希望在那里使用await。所以,应该是这样的:
beforeAll(async () => {
await createTable();
populateTable();
//setupLDAPConnection();
});https://stackoverflow.com/questions/57050324
复制相似问题