Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何正确测试承诺摩卡和柴?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下测试表现异常:

it('Should return the exchange rates for btc_ltc',function(done) {
    var pair = 'btc_ltc';

    shapeshift.getRate(pair)
        .then(function(data){
            expect(data.pair).to.equal(pair);
            expect(data.rate).to.have.length(400);
            done();
        })
        .catch(function(err){
            //this should really be `.catch` for a Failed request,but
            //instead it looks like chai is picking this up when a test fails
            done(err);
        })
});

如何正确处理拒绝的承诺(并测试)?

我应该如何正确处理一个失败的测试(即:expect(data.rate).to.have.length(400);?

这里是我测试的实现:

var requestp = require('request-promise');
var shapeshift = module.exports = {};
var url = 'http://shapeshift.io';

shapeshift.getRate = function(pair){
    return requestp({
        url: url + '/rate/' + pair,json: true
    });
};

解决方法

最简单的事情是使用内置promises支持Mocha在最近的版本:

it('Should return the exchange rates for btc_ltc',function() { // no done
    var pair = 'btc_ltc';
    // note the return
    return shapeshift.getRate(pair).then(function(data){
        expect(data.pair).to.equal(pair);
        expect(data.rate).to.have.length(400);
    });// no catch,it'll figure it out since the promise is rejected
});

由于这种方法是承诺的端到端,它更容易测试,你不必考虑奇怪的情况下,你正在想像像到处都是奇怪的done()调用

这是摩卡对于其他图书馆,例如茉莉花目前的优势。你可能还想检查Chai As Promised,这将使它更容易(没有.then),但个人我更喜欢当前版本的清晰和简单

大佬总结

以上是大佬教程为你收集整理的node.js – 如何正确测试承诺摩卡和柴?全部内容,希望文章能够帮你解决node.js – 如何正确测试承诺摩卡和柴?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: