我无法检查此对象是否需要执行一些操作来链接多个.to.have.property
语句?我相信我只是将结果从上一个.to.have.property
返回到下一个{。
expect(shopify.formatRequestOptions("shop"))
.to.have.property('url', "https://"+settings.shop+"/admin/shop.json")
.to.have.property('method', "GET")
.to.have.deep.property('headers.X-Shopify-Access-Token', settings.accessToken)
似乎我可以使用像chai-subset这样的东西来检查对象。有没有办法将这些链接在一起?我不想这样做。
var result = shopify.formatRequestOptions("shop")
expect(result).to.have.property('url', "https://"+settings.shop+"/admin/shop.json")
expect(result).to.have.property('method', "GET")
expect(result).to.have.deep.property('headers.X-Shopify-Access-Token', settings.accessToken)
答案 0 :(得分:2)
可以构建自己的函数,只返回true
/ false
并具有任何界面。
let example = {
'name': 'thomas'
}
let hasAllProps = (obj, props) => {
let propsTrue = _.chain(props)
.map(prop => _.has(obj, prop))
.without(false)
.value()
return (propsTrue.length === props.length)
}
console.log(hasAllProps(example, ['name'])) // true
console.log(hasAllProps(example, ['age'])) // false
答案 1 :(得分:0)
我们可以使用nested.includes
。
var result = shopify.formatRequestOptions("shop")
expect(result).to.nested.include({
url: "https://"+settings.shop+"/admin/shop.json"
method: 'GET',
'headers.X-Shopify-Access-Token': settings.accessToken // this where nested kicks in, on the dot path
});