Обновить

Для чего нужно интеграционное тестирование?

Время на прочтение9 мин
Охват и читатели74K
Всего голосов 4: ↑3 и ↓1+2
Комментарии3

Комментарии 3

Я верно понимаю, что комплексный тест предлагается разбить на
подготовка — подготовка данных для регистрации пользователя;
действие — вызов UserController.RegisterUser();
проверка — запрос к базе данных для проверки успешного завершения регистрации;
и
подготовка — подготовка данных для регистрации пользователя;
действие — вызов UserController.RegisterUser();
действие — вызов UserController.DeleteUser();
проверка — запрос к базе данных для проверки успешного удаления.

?
Не совсем. Первая часть верна. Но второй тест будет содержать теперь —
подготовка — подготовка данных для удаления пользователя
действие — вызов UserController.DeleteUser()
проверка — запрос к БД для проверки успешного удаления

То есть для второго теста у вас уже изначально должен быть готовый зарегистрированный пользователь. Например, тестовая БД заполняется фикстурами (фейковыми данными). И блок подготовки может включать запрос (с помощью репозитория, например) на получения этого фейкового юзера.
Но ведь «подготовка данных для удаления пользователя» — это создание пользователя, которое тоже надо проверить.
Логичным видится сделать @depends, либо (при наличии транзакций и откатов после тестов) удалять рандомного пользователя.
верно?

Upd. Да, ответил до того как вы отредактировали свой ответ. Теперь понятно, спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации