2015-07-02 37 views
5

Tôi đang gặp sự cố khi kiểm tra đối tượng này có điều gì tôi cần phải thực hiện để chuỗi nhiều câu lệnh .to.have.property không? Tôi tin rằng tôi chỉ trả lại kết quả từ số .to.have.property cuối cùng vào kết quả tiếp theo.Kiểm tra xem đối tượng có nhiều thuộc tính

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) 

Có vẻ như tôi có thể sử dụng một cái gì đó như thế này chai-subset để kiểm tra một đối tượng. Không có cách nào để kết nối chúng lại với nhau? Tôi ghét phải làm điều này.

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) 
+1

Tôi không biết nhiều về nó, nhưng có vẻ như đó là công việc đang diễn ra. Xem liên kết https://github.com/chaijs/chai/issues/193 – Elyasin

Trả lời

2

thể xây dựng chức năng riêng của mình mà chỉ cần trả true/false và có giao diện bất kỳ.

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 
Các vấn đề liên quan