2016-02-18 3 views
0

Я разрабатываю API для веб-приложения для социальных сетей для изучения перспективы. Когда я начал писать тестовые случаи я застрял вокруг, как организовать/записи тест cases.I'm первоначально исходя, как это:node.js: написание тестовых примеров для социальных сетей, таких как APIs

Первоначальная настройка инициализации базы глобальных данных: мне нужны маркеры некоторых пользователей Auth, чтобы проверить мой поэтому я решил настроить эту информацию в глобальном контексте. Также есть другая информация, которую также необходимо настроить в глобальном контексте, поэтому я тоже это установлю.

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

и после завершения всех комплектов тестов: Я думал, что очищу свою базу данных.


Проблемы с этим подходом я столкнулся являются:

Скажем, я хочу проверить четыре маршрута по имени /пользователей, /пользователей /:/ID my_invites, /send_invites, /response_invites. И, кроме того, предположим, что меня интересуют только записи тестовых случаев для запроса GET и ответа на /пользователей, /users /: id/invites и данные POSTing в случае других. /send_invites, /response_invites определенно запускает некоторые действия на стороне сервера, которые изменяют состояние базы данных.

Как мы видим, эти маршруты влияют на состояние данных других маршрутов, говорят, что один пользователь отправляет приглашения другому пользователю и получает ответ true/false, поэтому для этого пользователя его запрос был успешным, но как обеспечить, чтобы другой пользователь фактически получил приглашение, если мы не проверим его полученные документы приглашения (то есть через другой маршрут) в первых тестах маршрута. Средства /send_invites воздействует на /users /: id/my_invites.


, потому что эти маршруты зависят от друг друга

So The questions I want to ask are: 

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

Я пробовал с тремя фиктивными тестирующими пользователями в глобальном контексте и пробовал всевозможные комбинации для них во всех наборах тестов. В настоящее время в тестовом костюме рассматриваются несколько маршрутов, чтобы проверить истинную функциональность 1 маршрута.

Can anyone suggest me better solution for writing test cases for the above mentioned scenarios? 

Может быть, мой вопрос слишком длинный или непонятный. Пожалуйста, дайте мне знать и помогите мне, если сможете.

ответ

0

Мое мнение:

Первые основания каждого теста должны иметь свежий новое состояние. Это означает, что перед проверкой одного сценария вы хотите очистить базу данных и вставить новые данные, подготовленные для проверки этого сценария. Вы можете использовать реальную базу данных o mock one с данными в памяти или, как вы предпочитаете.

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

И хорошо мокко и другие тестовые рамки имеют функции, которые помогут вам это сделать. Подобно beforeEach и afterEach, чтобы настроить и снести данные перед каждым тестовым случаем.

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