Экспресс-приложение модульного тестирования
В настоящее время пытаюсь научиться писать модульные тесты для приложения 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/ является вашей отправной точкой.