Экспресс-приложение модульного тестирования

В настоящее время пытаюсь научиться писать модульные тесты для приложения Express (не интеграционное тестирование /PhantomJS).

Есть ли способ разделить маршруты на тестируемые методы, которые возвращают данные.json, которые будут отображаться фактическим:

app.get('/route', function(req, res, next) {
  res.render('template', {
    data: data
  });
});

Из всего, что я прочитал, они тестируют вывод JSON, потому что они разработали свое приложение в режиме RESTful, в то время как большинство из этих начальных руководств полностью шаблонизированы / отрисованы на сервере (что я не считаю плохим), возвращая HTML в клиент. Тем не менее, это часть, я не понимаю, как отделить и проверить.

Далее следует изучить магистраль, чтобы приложение просто бросало JSON, но сейчас есть какие-либо предложения или ссылки на полные учебники?

Большая оценка.

1 ответ

Есть несколько способов справиться с этим

  • Вы можете разделить маршруты между стандартным сайтом или /api/.. для ответов JSON
  • вы можете определить, что запрос принимает, проверив req.accepts req.accepts, чтобы определить, что запрос принимает, и вывести json или сделать html.
  • Вы могли бы написать промежуточное программное обеспечение для вывода, которое выполняет вышеуказанную проверку, но промежуточное программное обеспечение перед этим в стеке промежуточного программного обеспечения должно вызвать next() и передать req.responseData и обрабатывать req.responseData JSON соответственно, либо рендер, либо вывод..

для тестирования я рекомендую этот модуль https://github.com/visionmedia/superagent передавая accept заголовок или запрос правильного URL, но вывод JSON позволит вам проверить ваш API без использования HTML-парсеров для анализа HTML. Если в случае, если вы хотите проверить, как отображается HTML, либо используйте cheerio или фантомы, но я бы постарался избежать этого.

Что касается магистрали, существует множество учебных пособий, и http://backbonejs.org/ является вашей отправной точкой.

Другие вопросы по тегам