首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在所有测试之前设置DynamoDB表,并在所有测试之后将其删除?

如何在所有测试之前设置DynamoDB表,并在所有测试之后将其删除?
EN

Stack Overflow用户
提问于 2019-07-16 05:02:40
回答 1查看 1K关注 0票数 0

我有一个简单的Jest案例,我需要在开始时创建这个表,填充它,然后运行一些测试。在所有测试完成后,我需要删除DynamoDB中的表。

我尝试使用beforeAll创建表,然后进行测试,然后使用afterAll删除表。然而,它不确定地运行,所以人口试图在创建表之前运行,或者在创建表之前尝试删除该表。

我的代码

代码语言:javascript
复制
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');
        }
    });
};

有什么想法吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-07-16 22:02:13

beforeAll中的函数应该是async,而不是createTable,因为您希望在那里使用await。所以,应该是这样的:

代码语言:javascript
复制
beforeAll(async () => {
    await createTable();
    populateTable();
    //setupLDAPConnection();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57050324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档