0

最初にテーブルを作成し、データを入力してから、いくつかのテストを実行する必要がある単純な 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');
        }
    });
};

何か案は?

ありがとうございました。

4

1 に答える 1

1

あなたがそこにいたいので、内部の関数は、ではなく、でbeforeAllなければなりません。したがって、次のようになります。asynccreateTableawait

beforeAll(async () => {
    await createTable();
    populateTable();
    //setupLDAPConnection();
});
于 2019-07-16T22:02:13.403 に答える