我有一个春天开机测试使用wiremock嘲笑外部服务。为了避免冲突与并行编译我不想设定wiremock一个固定的端口号,并想依靠其动态端口配置。
该应用程序使用的属性(external.baseUrl
在application.yml)集(在src /测试/资源)。但是我没有找到一个方法以编程方式重写。我已经试过这样的事情:
WireMockServer wireMockServer = new WireMockServer();
wireMockServer.start();
WireMock mockClient = new WireMock("localhost", wireMockServer.port());
System.setProperty("external.baseUrl", "http://localhost:" + wireMockServer.port());
但它没有工作,并用来代替application.yml值。所有其他的解决方案,我已经看了覆盖有一个静态值(例如在一些注释)的属性,但我不知道wiremock端口的值,直到测试运行。
澄清:
这两个弹簧引导和wiremock随机端口上运行。这很好,我知道如何让两个端口的值。然而wiremock应该嘲笑外部服务,我要告诉我的应用程序如何去实现它。我这样做与external.baseUrl
财产。当然,我想在我的测试中设定的值取决于所wiremock端口号。我的问题是根本如何通过编程设定在春天开机试属性。
考虑使用春云合同Wiremock
已经有一个JUnit的规则生成器允许指定${wiremock.port}
设置的属性/ YAML文件随机端口
或者你可以使用WireMockRestServiceServer
绑定WireMock你RestTemplate
,所以你甚至都不需要重写的URL在你的测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句