Объект Chai Test Complex

#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#all

2. Это не работает: res.body.data.should.all.contain.a.thing.with.property('tags', ["fiction", "fantasy", "classic"]);

Ответ №1:

Итак, глядя на это, я думаю, что мой подход был неправильным. Я утверждаю, что тело содержит массив объектов. Затем получите доступ к этому объекту и проверьте этот способ. У меня также было неправильное понимание .property() , возвращаемое значение было объектом, а не значениями свойства.