Я пытаюсь протестировать мои контроллеры Express.js, но каждый раз так часто сталкиваюсь с проблемой отключения тайм-аута mocha.Mocha, превышающий 2000 мс таймаут при возвращении обещания
Документы (https://mochajs.org/#working-with-promises) и ответ здесь: https://stackoverflow.com/a/26572442/1646372 заявить, что я могу просто вернуть обещание, которое я использую.
Я завернул свои экспресс-контроллеры с помощью обещаний, чтобы затем вернуть их в тесте.
У меня есть базовый тест, который я могу работать, чтобы последовательно получить сообщение об ошибке:
it('should return',() => {
return new Promise(resolve => {
setTimeout(() => {
resolve('hello');
}, 2300);
});
});
Ошибка я получаю это:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
Я не понимаю, почему ошибка присутствует, поскольку я возвращаю обещание, которое разрешает.
Вы пишете тайм-аут 2300, это нормально, что вы превысили стандартное время 2000! – jesusgn90
Извините, это просто щелкнуло, что таймаут мокко - это заключительный занавес. Я думал, что если вы вернете обещание, тайм-аут будет отменен, и вам будет предоставлено столько времени, сколько вы захотите. И теперь я думаю об этом, это было бы очень опасно – silverlight513
Hahahah nevermind friend! – jesusgn90