2013-02-02 2 views
3

Я пишу API REST API в ExpressJS с использованием Mongoose. Я написал модульные тесты для всей логики внутри приложения. Единственное, что осталось непроверенным сейчас, это то, что API возвращает правильные коды состояния, и если ограниченные ресурсы фактически ограничены.Дать тесты для REST api NodeJS MongoDB

То, что я пытался до сих пор:

Я пытался использовать Request для выполнения GET/POST/PUT/DELETE на ресурсе, но я считаю его очень неуклюжим, чтобы бросить вещи в БД, сохранять ссылки к объектам и удалить их позже.

Это самый умный способ приблизиться к этому? Является ли моя реализация неправильной, если мне нужно проверить что-то через фактические запросы с фактической базой данных?

Если это предпочтительный способ тестирования API, необходимо проверить внутреннюю функциональность как полное решение или просто проверить коды состояния и доступ.

ответ

3

Обычно мы создаем тестовую БД и запускаем тесты с помощью NODE_ENV = 'test' ..., который запускает соединение с тестовой БД.

Таким образом, вы можете стереть тестовую БД без проблем, и вам не придется беспокоиться об очистке до/после испытаний.

Полезный инструмент для тестирования REST является SuperAgent (или Supertest, хотя я предпочитаю агент):

Полное раскрытие: Я вкладчиком в SuperAgent.

+0

Спасибо! Я пробовал это, но если это то, что наиболее распространено, я дам ему еще одну попытку. Я посмотрю на библиотеки, они выглядят лучше, чем запрос. Итак, для чего нужно протестировать, просто проверить коды состояния и то, к чему у меня есть доступ, и игнорировать содержимое, которое я получаю в ответ? Что-нибудь еще я должен проверить? – kimpettersen

+0

Я обычно проверяю каждый маршрут так: 1) золотой путь, 2) плохой ввод, 3) недостаточный доступ – hunterloftis

+0

Еще раз спасибо. Это подтолкнуло меня на правильные пути, и суперагент - это потрясающе! – kimpettersen

Смежные вопросы