使用Mocha和chai -as- committed测试被拒绝承诺的特定属性
Testing for specific properties of rejected promises, with Mocha and Chai-as-Promised
我正在尝试使用Chai-as-Promised、Mocha和"should"方言来测试被拒绝的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)
});
错误有一个"status"属性。我想断言状态是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)
如果您想检查您的承诺是否被拒绝并检查结果对象(即原因):
return fooPromise.should.be.rejected.and.eventually.deep.equal({
'x': 1,
'y': 1,
'z': 2
})
您可以将deep.equal
更改为任何其他常用的chai
匹配器。
注意:这是@sertug的答案的扩展,希望对其他来这里寻找这个的人有用
相关文章:
- 我怎样才能让承诺拒绝测试
- Angularjs 承诺拒绝链接
- 承诺拒绝错误 - 未处理的拒绝错误:已关闭
- 连锁Angular承诺拒绝
- 知道操作是成功还是被承诺拒绝
- 异步承诺中未处理的承诺拒绝
- 可能的未处理承诺拒绝(id:0): undefined不是一个对象
- 什么是未经处理的承诺拒绝
- 未处理的承诺拒绝:不能调用方法'push'零
- Angular 2 - zone.js:355未处理承诺拒绝:模板解析错误:'不是已知元素:
- 使用CommonJS承诺:拒绝与异常
- 理解node.js中的承诺拒绝
- 为什么这是未处理的承诺拒绝
- 未处理的承诺拒绝:ReferenceError: _body没有定义
- 可能未处理的承诺拒绝- React-Native与Firebase
- 未处理的承诺拒绝:模板解析错误
- React Native错误:可能未处理的承诺拒绝-无法读取属性数据
- 未处理的承诺拒绝:推.On不是一个函数
- 回报的承诺.拒绝离子页
- 捕获所有未处理的javascript承诺拒绝