#node.js #mocha.js #chai
#node.js #mocha.js #chai
Вопрос:
Я пытаюсь использовать Chai Things для тестирования ответа REST, а также для проверки правильности возврата объектов. Объект содержит массив, и именно здесь я сталкиваюсь с проблемами.
Пример:
{
data:[
{
bookTitle:"Lord of the Rings",
author: "J.R.R. Tolkien",
tags: ["fiction", "fantasy", "classic"]
}
]
}
Я пробовал варианты следующего:
res.body.data.should.contain.a.thing.with.property('tags', ["fiction", "fantasy", "classic"]
);
Но я получаю эту ошибку:
Uncaught AssertionError: expected an element of [ Array(1) ] to have a property 'tags' of ["fiction", "fantasy", "classic"], but got ["fiction", "fantasy", "classic"]
Комментарии:
1. Попробуйте
should.all.contain
. github.com/chaijs/chai-things#all2. Это не работает:
res.body.data.should.all.contain.a.thing.with.property('tags', ["fiction", "fantasy", "classic"]);
Ответ №1:
Итак, глядя на это, я думаю, что мой подход был неправильным. Я утверждаю, что тело содержит массив объектов. Затем получите доступ к этому объекту и проверьте этот способ. У меня также было неправильное понимание .property()
, возвращаемое значение было объектом, а не значениями свойства.