Как получить доступ к local.server.port при тестировании SpringBootTest.WebEnvironment.RANDOM_PORT - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь настроить симулируемый клиент для теста Спока с помощью теста весенней загрузки приложения.

Тест Спока настроен с помощью

@ActiveProfiles("functional-test")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

У меня есть приложение-функционал -test.yml, где мой симулированный клиент - это определение URL, я попытался:

my.feign.client.example.url: localhost:${local.server.port}

Но порт локального сервера говорит 0, что не соответствует случайному порту для приложения.

I также пробовал это, где randomServerPort содержит случайный порт, но я не могу переопределить свойство:

 @LocalServerPort
 int randomServerPort;

 @Value('${my.feign.client.example.url}')
 String feignTestClient

 void setup() {
     feignTestClient="localhost:${randomServerPort}"
 }

Есть идеи для лучшей практики? Я предпочитаю, чтобы URL был настроен в application-functions-test.yml, поэтому избегайте инициализации с фиктивным значением

Мой клиент Feign выглядит следующим образом:

@FeignClient(name = "myClient", url = "${my.feign.client.example.url}")
public interface FeignTestRestClient extends SomeControllerApi {}
...