Я пишу тесты, используя Spring Cloud Contract. В моей конфигурации я использую для тестирования базу данных в памяти, которая создается и уничтожается при каждом запуске теста. Для успешного тестирования мне нужно поместить некоторые данные в БД, но похоже, что аннотация classi c @Before, используемая в jUnit, не работает (код в ней никогда не выполняется).
import io.restassured.module.mockmvc.RestAssuredMockMvc;
import org.junit.Before;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.web.context.WebApplicationContext;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class BaseTestClass {
private static final Logger LOGGER = LoggerFactory.getLogger(BaseTestClass.class);
@Autowired
EntityRepository entityRepository;
@Autowired
private WebApplicationContext context;
@Before
public void init() {
// This code never runs
LOGGER.info("Init started");
MyEntity entity1 = new MyEntity();
entityRepository.save(entity1);
}
@BeforeEach
public void setup() {
RestAssuredMockMvc.webAppContextSetup(context);
}
}
Что мне не хватает?