Как я могу выполнить @ Sql до @BeforeAll (JUnit5) - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть класс тестирования интеграции со следующим сценарием:

  • Я хочу, чтобы скрипт 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();
    }
(...)
}
...