У меня есть объект, как это:Should.js цепные несколько утверждений на одно свойство
var obj = {
"uuid": "60afc3fa-920d-11e5-bd17-b9db323e7d51",
"type": "candy"
}
Я хочу написать тест, который проверяет первое, что объект обладает свойством «UUID» в первом место, а затем, что «uuid» - это определенная длина (36 символов).
Попытка это не работает
obj.should.have.property('uuid').which.should.have.length(36)
Он терпит неудачу с:
Uncaught AssertionError: expected Assertion {
obj: '60afc3fa-920d-11e5-bd17-b9db323e7d51',
params: { operator: 'to have property \'uuid\'' },
negate: false } to have property 'length' of 36 (got [Function])
И это (который на самом деле не делает синтаксический смысл в любом случае - так как он будет относиться к родительскому объекту не значение)
obj.should.have.property('uuid').and.be.length(36)
Который терпит неудачу с:
Uncaught TypeError: usergridResponse.entity.should.have.property(...).which.should.be.equal.to is not a function
Даже это не работает:
obj.should.have.property('uuid').which.equals('60afc3fa-920d-11e5-bd17-b9db323e7d51')
Так что правильный путь к цепи утверждений о свойстве объекта?
Неправильный способ предложить использовать .должно в два раза - лучше объяснить, почему это неправильно. –
Хорошо, уже объяснил. Но это также неправильный способ написать ответ, не давая ответа;) – artberri
Также obj не должен быть длиной 36, obj.uuid должен быть – brandonscript