处理承诺拒绝案件摩卡

时间:2017-02-22 12:19:32

标签: javascript node.js promise mocha sinon

如果我对return Promise.reject(err);函数中的行findGood发表评论,那么测试用例就会失败。这意味着,如果我没有从我的函数返回,那么测试中的catch块应为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);
  });

});

1 个答案:

答案 0 :(得分:1)

首先不需要捕获错误然后再次抛出错误,在适当的位置处理拒绝(在这种情况下你的测试用例)

public void ButtonBackClick() { Close(this); } 会返回一个承诺,为什么不使用chai-as-promised

findGood