node.js - 如何在所有测试之前设置 DynamoDB 表并在所有测试之后将其拆除?
问题描述
我有一个简单的 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');
}
});
};
有任何想法吗?
谢谢你。
解决方案
里面的函数beforeAll
应该是async
,不是createTable
,因为你想在await
那里。所以,它应该是这样的:
beforeAll(async () => {
await createTable();
populateTable();
//setupLDAPConnection();
});
推荐阅读
- sql - Oracle中对读一致性描述的一些混淆
- r - 在 R - 基于重复字符的子字符串
- playframework - Play 在使用现有数据库创建新 Play 2.6 项目时尝试应用所有 dows 演变
- javascript - ArrayBuffer 和 String 中日字符之间的 JavaScript 转换问题
- javascript - 如果选中单选按钮,如何调用函数
- wordpress - 删除 WooCommerce 产品页面标题
- node.js - 为什么这个 NodeJS 异步函数中没有捕获到错误?
- javascript - 如何在 javascript 中动态加载 gtag.js(谷歌分析)
- python - 如何修复由于 0 维矩阵导致的 NumPy 点差错误?
- c# - 查看看似忽略可见性转换器的输出