Как я могу условно выполнить тесты мокко, если условие является асинхронным вызовом функции?
Я попытался создать асинхронную реализацию на основе синхронного примера . В обоих приведенных ниже фрагментах я ожидал выполнения some test
, поскольку обещание, возвращаемое asyncCondition()
, разрешено до true
.
Сначала я попытался await
выполнить условие:
const assert = require('assert');
const asyncCondition = async () => Promise.resolve(true);
describe('conditional async test', async () => {
const condition = await asyncCondition();
(condition ? it : it.skip)('some test', () => {
assert.ok(true);
});
});
Результат: No tests were found
.
Далее я попробовал асинхронный before
хук:
const assert = require('assert');
describe('conditional async test', async () => {
let condition;
before(async () => {
condition = await asyncCondition();
});
(condition ? it : it.skip)('some test', () => {
assert.ok(true);
});
});
Результат: Pending test 'some test'
.
Код работает, если строка const condition = await asyncCondition()
изменена для выполнения синхронного вызова функции.