我正在用Spock测试一个Spring Boot应用程序,但是在其中一个测试案例中,我需要模拟或存根对身份验证服务器的调用(使用oauth 2),所以我试图将请求重定向到一个虚拟服务器进行测试,并使方法返回一个固定的代币。但是,我在运行时覆盖端口,但我得到一个错误,因为虚拟服务器是在一个固定的端口(从application-test.yml
读取),有没有办法在运行时改变这一点,使服务器匹配随机运行测试的端口?这是我的安装
函数:
`def setup() {
omcService.soapClient = Stub(SOAPClient)
String url = "http://localhost:${port}"
nonRetryableExceptionProcessor.omsUrl = url
omsService.omsUrl = url
omsService.authUrl = "$url/oauth/token?scope=all"
omsService = Spy(OmsService)
producerTemplate.start()
}
当我调试这个测试时,属性被更改,但是当应用程序执行GET操作时,它总是指向localhost:4321
always,这不是Spring拾取的随机端口
您可以将随机端口注入测试。
例如使用@LocalManagementPort:
@LocalManagementPort
int port;
或者直接使用@Value:
@Value("${local.server.port}")
int port;
但如果上述方法无效,那么我相信这是你最后的选择:
int port = context.embeddedServletContainer.port
注入后,您可以在该端口上执行对服务器的访问。
我在我的项目中使用带有MongoDb和Elasticsearch的Springboot。当我的Elasticsearch服务器运行时,我的Springboot应用程序运行良好,但当Elasticsearch服务器停止时,我的Springboot应用程序也无法启动。根据我的项目要求,即使Elasticsearch服务器无法启动,我们的Springboot应用程序仍应运行,因为我们的大多数API都是基
给定中的此条目: 这会导致Spring Boot选择一个随机的可用端口,并且使用spock测试Spring Boot web应用程序,spock代码如何知道要命中哪个端口? 像这样的正常注射: 对斯波克不起作用。
我希望Spock中的所有测试都能在构建应用程序时自动启用。应用程序是用java、maven和Spring编写的。如何配置?
我正在用Apache Camel路由为Spring Boot应用程序创建一些单元测试,使用Spock作为测试框架,我需要模拟来自另一个应用程序的响应。我为此制作了一个模拟控制器,但我需要将测试正在运行的端口注入一个属性。有没有方法获得测试正在运行的端口? 我试过 另外,是否有方法在文件中注入该随机端口?理想情况下,我需要在文件中执行以下操作: 其中端口是运行测试的随机端口。
我被要求对Glassfish 3.0上托管的Java应用程序进行更改。我没有源代码。我是否能够通过反编译获得源代码,对其进行更改,并使用更改重新部署它?有人能帮忙吗?