Тестирование Java-приложения, уровень базы данных, встроенная база данных, выполнение сценария SQL - PullRequest
0 голосов
/ 16 октября 2019

Мне нужно написать примеры модульных тестов для Java-приложения с использованием Junit.

Я думал об использовании встроенной базы данных, как H2, но проблема, с которой я столкнулся, заключается в том, что у меня есть несколько классов тестированияподумал о написании файла сценария sql для создания таблиц и инициализации данных для тестовой базы данных.

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

Если имеется несколько тестовых классов, мы не можем написать эти сценарии в каждом тестовом классе в методе @BeforeClass.

Должен быть другой путь. Мое приложение использует Oracle db, но для тестирования я подумал об использовании H2.

Буду признателен за любые предложения!

1 Ответ

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

1) Как и @BeforeClass, который будет запускаться один раз в начале набора тестов, @Before будет выполняться перед каждым тестом.

2) Если вы выполняете модульное тестирование дляопределенный класс / фрагмент кода, то лучше не работать с реальной БД, а с фиктивной БД, которую вы внедряете в код, который вы тестируете, и устанавливаете его поведение. Популярный фальшивый фреймворк: Mockito

Так что вы можете делать такие вещи:

when(carsRepository.findById(id)).thenReturn(null);
when(carsRepository.findAllByCustomerName(customerName)).thenReturn(someCars);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...