Желательно ли проводить последовательные интеграционные тесты? - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в интеграционных тестах, и в настоящее время делаю это с SpringBootTest.

Примерно то, что я собираю из примеров, состоит в том, что каждый метод будет одним интеграционным тестом (соответствует одному вызову REST).

Но что, если я хочу протестировать сценарий, в котором есть последовательность шагов? Как Создать пользователя-> Обновить пользователя-> Удалить пользователя.

Может быть, это не называется интеграционным тестом? И если да, то как мне связать их внутри SpringBootTest?

1 Ответ

0 голосов
/ 26 октября 2019

Что ж, нормально иметь порядок тестирования на этом уровне тестирования, что я имею в виду под уровнем:

Модульное тестирование -> Тестирование компонентов -> Интеграционное тестирование -> Сквозное тестирование.

При перемещении вправо тесты становятся более сложными для настройки и выполнения.

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

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

Теперь,Вам нужно позаботиться о порядке методов испытаний. JUnit5 использует новую аннотацию @TestMethodOrder, а JUnit4 использует @FixMethodOrder, которая не очень настраиваема, вы можете найти больше информации здесь

И, наконец, я предлагаю использовать для этого что-то более BDD, такое как Cucumberвиды тестов

...