2017-02-06 8 views
0

Я пытаюсь протестировать мои контроллеры 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. 

Я не понимаю, почему ошибка присутствует, поскольку я возвращаю обещание, которое разрешает.

ответ

1

Вы можете установить тайм-аут в командной строке с этим флагом --timeout 5000 или вы можете добавить это в первую строку теста this.timeout(5000); в описании описания внутри функции.

+0

Вы пишете тайм-аут 2300, это нормально, что вы превысили стандартное время 2000! – jesusgn90

+0

Извините, это просто щелкнуло, что таймаут мокко - это заключительный занавес. Я думал, что если вы вернете обещание, тайм-аут будет отменен, и вам будет предоставлено столько времени, сколько вы захотите. И теперь я думаю об этом, это было бы очень опасно – silverlight513

+0

Hahahah nevermind friend! – jesusgn90

 Смежные вопросы

  • Нет связанных вопросов^_^