【发布时间】:2019-04-30 15:10:37
【问题描述】:
我正在为带有 Apache Camel 路由的 Spring Boot 应用程序创建一些单元测试,使用 Spock 作为测试框架,我需要模拟来自另一个应用程序的响应。我为此制作了一个模拟控制器,但我需要将运行测试的端口注入到一个属性中。有没有办法获取运行测试的端口?
我试过了
@LocalServerPort
private int port
与
@Autowired Environment environment;
String port = environment.getProperty("local.server.port");
但两者都返回 -1,我不知道有什么其他方法可以获取端口
我的测试配置了以下注解:
@RunWith(SpringRunner)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles('test')
另外,有没有办法在application-test.yml 文件中注入那个随机端口?理想情况下,我需要在我的application-test.yml 文件中执行类似的操作:
app:
service: localhost:${server.port}
其中端口是运行测试的随机端口。
【问题讨论】:
-
大家好,这些答案对我不起作用,每个都为端口返回一个空值
标签: java spring spring-boot