Задача тестирования, порядок тестирования и автоматическое увеличение - PullRequest
0 голосов
/ 23 апреля 2020

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

Теперь у меня есть несколько функций, таких как операции crud и т. Д.
Проблема заключается в тестировании с интеграционными тестами, и оно касается порядок тестирования и автоинкремент
в тестовой базе данных (mysql база данных).

Когда я запускаю тест по одному тесту, все они работают, и они успешны, но когда я запускаю все сразу,
в классе теста, потому что в порядке выполнения есть ошибки в нескольких тестах ,

Например, сначала выполняется тест добавления. В нем, после добавления, конечно, я удаляю элемент, который я добавил в базу данных, но это не перезапускает автоприращение, и это представляет проблему в других тестах.

Я решил проблему, изменив другую тесты, но я не думаю, что это правильное решение. Надеюсь, я хорошо объяснил, в чем проблема. Каковы возможные решения этой проблемы? Можно ли перезапускать автоинкремент после каждого теста или нет.

Если у кого-то есть решение этой проблемы и кто-то спас, я был бы признателен. Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Здесь я не уверен, но думаю, что нашел решение.

Я думаю, что можно использовать эти два способа:

Один с помощью аннотации @DirtiesContext(methodMode = DirtiesContext.MethodMode.BEFORE_METHOD), который перезагружает контекст приложения и перезапускает все, но замедляет выполнение тестов.

И другой способ с sql аннотацией @Sql(statements = "ALTER TABLE role AUTO_INCREMENT = 2")
, которую мы вызываем перед тестовым методом и перезапускаем автоинкремент с sql заявление.

Я хотел бы, чтобы вы прокомментировали, является ли это решение хорошим или нет. Конечно, любые советы приветствуются. Спасибо.

0 голосов
/ 23 апреля 2020

Зачем сохранять данные в базе данных во время тестирования. (Вместо насмешки)

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

См. Тестирование CRUD здесь.

https://howtodoinjava.com/spring-boot2/testing/rest-controller-unit-test-example/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...