har*_*ryg 6 javascript mocha.js promise chai
我正在尝试使用chai-as- promise 库来测试一个返回promise的函数.我的承诺中的结果是具有嵌套属性的对象.是否可以测试深层嵌套属性的值.
例如
function myFunc() {
return new Promise((resolve, reject) => {
const data = {
thing: {
foo: 'bar',
baz: 'lah'
}
}
resolve(data)
})
}
Run Code Online (Sandbox Code Playgroud)
如何在foo不检查整个对象的情况下测试属性是否等于"bar"?我尝试过这样的事情:
expect(myFunc()).to.eventually.have.property('thing.foo', 'bar')
Run Code Online (Sandbox Code Playgroud)
但没有运气!
Que*_*Roy 11
使用深度属性查找应该可行.只需添加deep关键字property.
expect(myFunc()).to.eventually.have.deep.property('thing.foo', 'bar')
Run Code Online (Sandbox Code Playgroud)
如果你喜欢冗长的方式,你也应该能够做到这样的事情:
expect(myFunc())
.to.eventually.have.property('thing')
.that.has.property('foo')
.that.is.equal.to('bar');
Run Code Online (Sandbox Code Playgroud)