我正在使用Spock作为测试框架为使用Apache Camel路由的Spring Boot应用程序创建一些单元测试,并且我需要模拟另一个应用程序的响应。我为此做了一个模拟控制器,但是我需要将运行测试的端口注入一个属性。有没有办法获取正在运行测试的端口?
我尝试过
@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}
端口是运行测试的随机端口。
答案 0 :(得分:2)
您能尝试一下吗?
@SpringBootTest(classes = {Application.class}, webEnvironment = WebEnvironment.RANDOM_PORT)
public class test{
@LocalServerPort
private int rdmServerPort;
@LocalManagementPort
private int rdmManagementPort;
...
}