Загрузите порт в класс данных @ConfigurationProperties в SpringBootTest со случайным портомJAVA

Программисты JAVA общаются здесь
Anonymous
 Загрузите порт в класс данных @ConfigurationProperties в SpringBootTest со случайным портом

Сообщение Anonymous »

У меня есть тест на пружинный загрузочный тест Kotlin, работающий на случайном порте. URL -адрес моего собственного сервера (SMTH.Like: localhost: {local_port} ). Внутри кода я с использованием @ConfigurationProperties класс данных для загрузки свойств. Вопрос в том, как установить порт на этот URL при выполнении тестирования (до того, как метод испытаний называется, но после инициализированного контекста тестирования)? < /P>
Мой тестовый класс: < /p>

Код: Выделить всё

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MySpringBootTest {

@LocalServerPort
var port: Int = 0

@Autowired
private lateinit var myService: MyService

@Test
fun testProductionMethod() {
val result = myService.doSomething()
println("Result: $result")
}
}
< /code>
my Application-test.yml: < /p>
my:
custom:
url: http://localhost:{local_port}
мой класс данных конфигурации (, который вводится в MyService позже ):

Код: Выделить всё

@ConfigurationProperties(prefix = "my.custom")
data class MyCustomProperties(
val url: String = "" // Should be set dynamically
)
< /code>
Сервис, который использует свойства: < /p>
@Service
class  MyService(private val properties: MyCustomProperties) {

fun reqeust() {
val url = properties.url
// request to url...
}

}
уже попытался установить его с @beforeeach , ApplicationContextInitializer , @DynamicPropertySource и @TestPropertySource , не работал.
Пожалуйста, не отвечайте с помощью сгенерированных AI текстов.

Подробнее здесь: https://stackoverflow.com/questions/794 ... st-with-ra

Вернуться в «JAVA»