gpt4 book ai didi

javascript - 处理 Promise 拒绝案例 Mocha

转载 作者:行者123 更新时间:2023-12-03 04:57:13 26 4
gpt4 key购买 nike

如果我在 findGood 函数中注释行 return Promise.reject(err); ,则测试用例应该失败。这意味着,如果我没有从函数中返回,则测试中的 catch block 应该是 undefined

var findGood = function (name) {

return goodModel.findByName(name)
.then( (result) => {

....
return result;


})
.catch( (err) => {
return Promise.reject(err);
});
};

这是一个测试

it('good not found', function () {

var goodModelStub = sinon.stub(goodModel, 'findByName');

var error = 'Good not found';

goodModelStub.returns(Promise.reject(error));

return goodFinder.findGood('Sony')
.catch(function (err) {
assert.equal(err, error);
});

});

最佳答案

首先,不需要捕获错误然后再次抛出它,在适当的位置处理拒绝(在本例中是您的测试用例)

findGood 返回一个 Promise 那么为什么不使用 chai-as-promised

it('good not found', function () { 
var goodModelStub = sinon.stub(goodModel, 'findByName');

var error = 'Good not found';

goodModelStub.returns(Promise.reject(error));

return goodFinder.findGood('Sony').should.be.rejected
});
});

关于javascript - 处理 Promise 拒绝案例 Mocha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42391306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com