Вы не можете использовать расширения JUnit Jupiter с KotlinTest, так как это разные движки.Junit Jupiter - это реализация поверх Junit Platform, как и KotlinTest, но все, что написано специально для Jupiter, не будет работать с KotlinTest.Однако все, что написано для Junit Platform, должно работать.
К сожалению, выбор команды имен JUnit неудачен, поэтому люди думают, что JUnit Jupiter - это то же самое, что и JUnit Platform.
В любом случае, эти
@ExtendWith(SpringExtension::class)
@Transactional
@SpringBootTest
расширения не будут ничего значить для KotlinTest, больше, чем для Spek или чего-либо еще.ExtendWith
является специфической для Юпитера аннотацией, которая говорит ему использовать класс SpringExtension
.Эквивалент KotlinTest - это SpringListener
, который вы уже подключили.
Я не уверен, будет ли @SpringBootTest
получен Spring или нет.Для этого может потребоваться поддержка, в зависимости от того, что он делает.
Наконец, @Transactional работает, создавая прокси для методов, но, поскольку в более продвинутых средах тестирования, таких как KotlinTest, тестовые контейнеры являются не методами, а простопроизвольные функции, он не сможет перехватить.
Я думаю, в этом случае вам может понадобиться создать правильный метод и аннотировать его, или попытаться использовать AnnotationSpec вместо StringSpec
или любой другой используемый вами базовый класс спецификации, который использует реальные методы, которые вы можете аннотировать.