Я переношу приложение из Thorntail в Spring Boot.
Некоторые из наших интеграционных тестов используют Arquillian и его аннотацию @UsingDataSet
, что - очень удобно - позволяет указывать структуры данных в yaml.
К сожалению, я не думаю, что SpringBoot поддерживает "yaml-инъекции", но предоставляет аннотацию @Sql
, которая ожидает - сюрприз - файлы sql.
Теперь я не хочу переписывать тестовые данные в SQL.Это громоздко, и у меня нет нужды тратить часы на отладку SQL, потому что я ускользнул куда-то вниз.
В идеале, конечно, мы бы полностью избавились от файлов yaml / sql и выбрали, скажем, jOOQи заполните нашу тестовую базу данных из кода.
Пока не уверен, будет ли это выполнимо при разумных усилиях.
Давайте предположим, что переписывание в коде не вариант, и у нас есть интеграциянапример,
@RunWith(Arquillian::class)
@UsingDataSet("foo.yml","bar.yml","baz.yml")
class MyBloodyIT{
}
Я хотел бы создать вспомогательный "тестовый" класс
@RunWith(Arquillian::class)
class MyBloodySQLDumpIT{
@Test
@UsingDataSet("foo.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `foo.sql`
}
@Test
@UsingDataSet("bar.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `bar.sql`
}
@Test
@UsingDataSet("baz.yml")
fun dumpFoo(){
// dump hibernate-generated SQL statements to `baz.sql`
}
}
Как мне, , сделать , хотя?
Любой способ подключиться к hibernate и получить операторы, сгенерированные для определенного метода (и операторы только и только для этого одного метода)?