В настоящее время я борюсь с внедрением порта сервера экземпляра SpringBootTest. Я написал тестовый класс конфигурации, где я хотел бы получить доступ к этому порту.
Класс конфигурации теста:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FILE)
@Retention(AnnotationRetention.RUNTIME)
@Import(value = [TestTemplateConfig::class])
annotation class TestAnnotation
@Configuration
open class TestTemplateConfig {
@Value("\${server.port}")
private var localPort: Int? = null
@Bean
open fun foo() = Foo(localPort)
}
Тест выглядит так:
@SpringBootJunit5Test
@TestAnnotation
@EnableTestCouchbase
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MyIntegrationTest {
@LocalServerPort
var port: Int = 0
@Autowired
private lateinit var foo: Foo
...
}
Теперь проблема в том, что я всегда получаю нулевое значение для порта в классе конфигурации. Поскольку я не получаю null, это звучит так, как будто он работает, чтобы получить порт, но неправильный (я думаю, что ноль определен для случайного порта весной). Оценка порта сервера в классе MyIntegrationTest пока работает правильно.
Любые идеи, чтобы исправить это?
Спасибо