1
失败
考虑一下这个功能:如何让逮住承诺开玩笑
aPromise = require('axios');
function middleware(callback) {
axios.get('/api/get')
.then(callback)
.catch(callback);
}
考虑一下这个测试:
const callback = (err) => {
expect(isError(err)).toBe(true);
done();
};
middleware(callback);
的isError
是lodash功能。
考虑aPromise
作为我想测试的东西。如果承诺总是解决,这个测试不应该通过。但它会!这是因为承诺的抓住实际上捕获了expect
例外。
我的问题是:在承诺的then
处理程序中发生错误时,如何在承诺的catch
处理程序中发现错误?
请注意,我不使用async/await。
感谢您的回答。我已经改变了这个问题,使之更加清晰。 – alisabzevari
更新了答案,向您展示了两种解决方案 –
对不起,我认为这并不重要;但是我在我的测试中无法获得承诺。我应该用回调测试一个函数。实施使用承诺。我改变了这个问题。 – alisabzevari