我正在尝试使用Chai-as-Promised,Mocha和“应”方言来测试被拒绝的Promise的细节。 promise 由bluebird实现。
这很好用:
it('it should be rejected when given bad credentials', function () {
var promiseOfUsers = db.auth("bad", "credentials").getUsers();
return promiseOfUsers.should.eventually.be.rejectedWith(Error)
});
该错误有一个“状态”属性。我想断定状态为401
这不起作用:
it('it should be rejected when given bad credentials', function () {
var promiseOfUsers = db.auth("bad", "credentials").getUsers();
return promiseOfUsers.should.eventually.be.rejectedWith(Error)
.that.has.property('status')
.that.equals(401)
});
似乎在没有引用“rejected”或rejectedWith(Error)的情况下进行任何断言的尝试都会失败,并且只会将错误输出到控制台。
我如何研究拒绝的原因?
最佳答案
我认为rejectedWith()处理程序存在一些问题。但是您可以这样做:promiseOfUsers.should.be.rejected.and.eventually.have.property("status",401)