Комментарии 3
Я верно понимаю, что комплексный тест предлагается разбить на
?
подготовка — подготовка данных для регистрации пользователя;и
действие — вызов UserController.RegisterUser();
проверка — запрос к базе данных для проверки успешного завершения регистрации;
подготовка — подготовка данных для регистрации пользователя;
действие — вызов UserController.RegisterUser();
действие — вызов UserController.DeleteUser();
проверка — запрос к базе данных для проверки успешного удаления.
?
Не совсем. Первая часть верна. Но второй тест будет содержать теперь —
подготовка — подготовка данных для удаления пользователя
действие — вызов UserController.DeleteUser()
проверка — запрос к БД для проверки успешного удаления
То есть для второго теста у вас уже изначально должен быть готовый зарегистрированный пользователь. Например, тестовая БД заполняется фикстурами (фейковыми данными). И блок подготовки может включать запрос (с помощью репозитория, например) на получения этого фейкового юзера.
подготовка — подготовка данных для удаления пользователя
действие — вызов UserController.DeleteUser()
проверка — запрос к БД для проверки успешного удаления
То есть для второго теста у вас уже изначально должен быть готовый зарегистрированный пользователь. Например, тестовая БД заполняется фикстурами (фейковыми данными). И блок подготовки может включать запрос (с помощью репозитория, например) на получения этого фейкового юзера.
Но ведь «подготовка данных для удаления пользователя» — это создание пользователя, которое тоже надо проверить.
Логичным видится сделать @depends, либо (при наличии транзакций и откатов после тестов) удалять рандомного пользователя.
верно?
Upd. Да, ответил до того как вы отредактировали свой ответ. Теперь понятно, спасибо.
Логичным видится сделать @depends, либо (при наличии транзакций и откатов после тестов) удалять рандомного пользователя.
верно?
Upd. Да, ответил до того как вы отредактировали свой ответ. Теперь понятно, спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Для чего нужно интеграционное тестирование?