Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 当抛出的任何错误没有冒出时,如何在promise中进行断言?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用mocha运行会导致超时,而不是让mocha捕获错误,因此它可能会立即失败.

var when = require('when');
var should = require('should');

describe('',function() {
    it('',function(donE) {
        var d = when.defer();
        d.resolve();
        d.promise.then(function() {
            true.should.be.false;
            false.should.be.true;
            throw new Error('Promise');
            done();
}); }); });

http://runnable.com/me/U7VmuQurokZCvomD

是否有另一种方法可以在promise中进行断言,这样当它们失败时,它们会被mocha捕获,导致它立即失败?

根据chai推荐,我调查了它,似乎我必须直接访问promise对象,对吧?问题是我没有直接使用承诺..如果我简化了我的坏,但这将更接近现实的例子

function core_library_function(callBACk){
    do_something_async(function which_returns_a(promisE){
        promise.then(function(){
            callBACk(thing);
}); }); }

describe('',function(donE) {
        core_library_function(function(thing){
            ...
            done();                         
}); }); });

所以我真的无法直接控制这个承诺,它被抽象了很远.

解决方法

当使用Mocha的promises时,你必须在测试中返回promise,并且由于没有使用回调,因此需删除done参数.

it('',function() {
    var d = when.defer();
    d.resolve();
    return d.promise.then(function() {
        throw new Error('Promise');
    });
});

这在Working with Promises下的文档中描述:

大佬总结

以上是大佬教程为你收集整理的node.js – 当抛出的任何错误没有冒出时,如何在promise中进行断言?全部内容,希望文章能够帮你解决node.js – 当抛出的任何错误没有冒出时,如何在promise中进行断言?所遇到的程序开发问题。

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

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