我习惯使用标准的Node.js assert库编写Mocha测试,像这样:
describe('Some module', () => {
var result = someCall();
it('Should <something>', () => {
assert.ok(...);
});
})
但现在我的调用返回一个 Promise ... 所以我想要写成:
describe('Some module', async () => {
var result = await someCall();
it('Should <something>', () => {
assert.ok(...);
});
})
但它不起作用。我的测试根本无法运行。奇怪的是,
describe('Some module', async () => {
it('Should <something>', () => {
var result = await someCall();
assert.ok(...);
});
})
这段代码本身没问题,但我想一次性调用它并运行多个测试,所以我想在it()之外进行调用。
我该如何实现呢?
请不要推荐Chai库。我想使用标准的assert库。
asyncCall
返回一个Promise
,则在before
中不需要使用done
。只需返回Promise
即可。before(() => { return asyncCall().then(() => { // 在转到it之前做一些事情 }); });
除此之外,我会使用before
。 - nicholaswminasync/await
的方法,但在我的环境中似乎无法工作(尽管应该可以),而发布的解决方案却可以。您有什么想法为什么会这样? - Dacre Dennydone
,则需要 返回 一个 Promise。由于async
函数已经返回了一个Promise
,因此在before
中简单地返回asyncCall
就足够了。在该块中不需要使用async/await
。 - nicholaswmin