chai-as-promised 和 mocha 中嵌套 属性 的测试值
Testing value of nested property in chai-as-promised and mocha
我正在尝试使用 chai-as-promised 库测试 returns promise 的函数。我承诺的结果是一个具有嵌套属性的对象。是否可以测试深度嵌套的 属性 的值。
例如
function myFunc() {
return new Promise((resolve, reject) => {
const data = {
thing: {
foo: 'bar',
baz: 'lah'
}
}
resolve(data)
})
}
如何在不检查整个对象的情况下测试 foo
属性 等于 "bar"?我试过这样的事情:
expect(myFunc()).to.eventually.have.property('thing.foo', 'bar')
但运气不好!
使用深度 属性 查找应该可行。只需在 property
.
之前添加 deep
关键字即可
expect(myFunc()).to.eventually.have.deep.property('thing.foo', 'bar')
如果您更喜欢冗长的方式,您应该还可以执行以下操作:
expect(myFunc())
.to.eventually.have.property('thing')
.that.has.property('foo')
.that.is.equal.to('bar');
我正在尝试使用 chai-as-promised 库测试 returns promise 的函数。我承诺的结果是一个具有嵌套属性的对象。是否可以测试深度嵌套的 属性 的值。
例如
function myFunc() {
return new Promise((resolve, reject) => {
const data = {
thing: {
foo: 'bar',
baz: 'lah'
}
}
resolve(data)
})
}
如何在不检查整个对象的情况下测试 foo
属性 等于 "bar"?我试过这样的事情:
expect(myFunc()).to.eventually.have.property('thing.foo', 'bar')
但运气不好!
使用深度 属性 查找应该可行。只需在 property
.
deep
关键字即可
expect(myFunc()).to.eventually.have.deep.property('thing.foo', 'bar')
如果您更喜欢冗长的方式,您应该还可以执行以下操作:
expect(myFunc())
.to.eventually.have.property('thing')
.that.has.property('foo')
.that.is.equal.to('bar');