Ниже приведена суть кода, присутствующего в интеграционном тесте. Я считаю, что некоторые аннотации могут быть неверными; Я пытался в течение 2 дней возиться с аннотациями и yml-файлом конфигурации приложения, но почти всегда одна и та же ошибка. Я попробовал DirtiesContext в классе Cucumber, установив для IsolationLevel значение ReadUncommited, но так и не увидел эту «вставленную» запись на этапе Cucumber!
Код: Выделить всё
@CucumberContextConfiguration
@ContextConfiguration(classes = {MainApp.class})
@RunWith(Cucumber.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = {MainApp.class})
@Import(MainApp.class)
@EnableAutoConfiguration
@AutoConfigureWireMock(port = 0)
public class ApplicationTestSteps {
@Autowired
private JdbcTemplate jdbcTemplate;
private List retrieveAllBooks() {
return jdbcTemplate.query("select * from t_books", new BookMapper());
}
@When("I call the insert data endpoint in the app") {
//api call to the app that inserts data into the db
}
@And("I check the database has the data")
public void checkData() {
assertThat(retrieveAllBooks().size().isGreaterThan(0));
}
}
Код: Выделить всё
spring:
datasource:
url: jdbc:h2:memLTESTDB;MODE=DB2
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
defer-datasource-initialisation: true
generate-ddl: false
hibernate:
hbm2ddl:
auto: none
hibernate:
hbm2ddl.auto: update
>
Подробнее здесь: https://stackoverflow.com/questions/796 ... r-integrat
Мобильная версия