У меня есть класс тестирования интеграции со следующим сценарием:
Я хочу, чтобы скрипт sql был загружен первым делом. Для этой цели я использую аннотацию Spring @ Sql на уровне класса
, а затем у меня есть метод @BeforeAll (JUnit5), который я хотел бы выполнить только один раз, после @ Sql был выполнен.
Моя проблема в том, что содержимое @BeforeAll было выполнено до импорта сценария @ Sql, а не после.
Почему это так, и что я могу сделать, чтобы изменить порядок?
@SpringBootTest
@Transactional
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Sql(scripts={"classpath:data-postgreForDemoAndIt.sql"}, executionPhase = BEFORE_TEST_METHOD)
public class DatingManagerIT {
(...)
@BeforeAll
public void init() {
MockitoAnnotations.initMocks(this);
Member memberDenise = memberDao.findByEmail("denise@yahoo.fr", Member.class).get();
Member memberAnne = memberDao.findByEmail("anne@yahoo.fr", Member.class).get();
Member memberJulien = memberDao.findByEmail("julien@yahoo.fr", Member.class).get();
memberDao.delete(memberDenise);
memberDao.delete(memberAnne);
memberDao.delete(memberJulien);
memberFactory.createSampleMembers();
}
(...)
}