Я использую Mocha для проверки своего кода Node.js.Этот конкретный тест проверяет, возвращает ли некоторая заглушка массив заполненных объектов.Тест хороший, результат возвращается заполненным, как и ожидалось, и все "зеленым".Но когда ожидалось, что Мокко завершит свой процесс, он застрянет.Единственный способ закончить это - нажать Ctrl + C.
. Я попробовал три вида написания теста (следующим образом).Во всех из них тест проходит, но держит процесс заблокированным:
1) Использование простых методов then / catch:
describe('#getAll()', function () {
it('should return a list of objects', function (done) {
orderRepository.getAll()
.then((result) => {
assert.isArray(result);
done();
})
.catch((err) => { done(err); });
});
});
2) Использование нового теста Promise с поддержкой Mocha:
describe('#getAll()', function () {
it('should return a list of objects', function () {
return orderRepository.getAll()
.then((result) => {
assert.isArray(result);
});
});
});
3) Использование рекомендованного подхода с async / await:
describe('#getAll()', function () {
it('should return a list of Order objects', async function () {
var result = await orderRepository.getAll();
assert.isArray(result);
});
});
Опять же: ВСЕ ТРИ МЕТОДА возвращают тест, подсвеченный зеленым, но остаются в процессе mocha.
Я использую Мокко и Чай в качестве необходимых модулей.
Буду рад, если кто-нибудь сможет мне помочь!