【发布时间】:2021-09-17 20:17:49
【问题描述】:
获取以下代码:
describe('foobar', function () {
it('foo', async () => {
// ############ API Call ############
let foo = await chaiHttpUtil.postRequest(yadda, yadda yadda);
// ############ Verify results ############
expect(foo).to.have.status(200);
));
it('bar', async () => {
// ############ API Call ############
let bar = await chaiHttpUtil.postRequest(yadda, yadda yadda);
// ############ Verify results ############
expect(bar).to.have.status(200);
));
));
当上面运行时,我看到第一个“it”(即 foo)被启动,而不是等待它完成,然后它启动第二个“it”(即 bar)。
如何让 bar 等到 foo 完成?我可以吗?我了解async 的本质是它只是在等待完成,但我可以在栏中放一些东西让它等待第一个完成吗?
更新:
我使每个测试都独立于状态和彼此。现在效果很好。谢谢指导!
【问题讨论】:
-
您对
it一个接一个运行的期望是不正确的。 (您只等待发布请求,而不是it本身。)此外,每个它应该彼此独立。您要么应该将代码放在一个it语句中,要么动态创建它们。
标签: node.js async-await mocha.js