以编程方式从JUNIT

时间:2016-08-04 12:29:17

标签: java spring junit mocking wiremock

首先,感谢WireMock团队提供易于使用和集成的出色模拟解决方案。

http://wiremock.org/docs/

我遇到了一个具体问题。我在本地机器上的Junit测试中运行WireMock。当WireMock启动时,它会在8089端口上运行,如下所示,我可以通过以下链接浏览URL,这是完美的。

http://localhost:8099/xx/xx/invoice/201628JP00006097

@Rule
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().httpsPort(8089));

wireMockRule.stubFor(get(urlEqualTo("/xx/larxxs/invoice/201627JP00006087"))
        .willReturn(aResponse().withHeader("Content-Type", "text/xml").withBodyFile("K000006087.xml")));

在我的本地计算机上托管此模拟后,我在远程UNIX服务器上运行一些批处理作业。批处理作业然后尝试通过https链接从模拟中获取此数据,并且它曾经工作正常。现在远程UNIX服务器上有一些变化,或者我不确定一夜之间发生了什么变化,因为远程UNIX机器在尝试从WireMock获取数据时抛出错误。虽然ping正在我的机器上工作以删除UNIX机器,反之亦然,我能够通过我的localhost上的浏览器获取数据。

2016-08-03 17:31:50.101 ERROR 19483 --- [main] .w.s.l.s.b.t.OldLarsRestInvoiceGenerator : Exception while getting invoice data from Cybill rest serviceorg.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://10.10.34.238:8089/xx/xx/invoice/201627JP00006087": Connection timed out; nested exception is java.net.ConnectException: Connection timed out

我想问一下,我们是否可以通过远程UNIX机器上的Junit以编程方式运行WireMock以及我们如何做到这一点。就像@Rule一样,我提到它可以在端口8089上运行。我可以在这里提一下主机吗。

我看到我们可以在远程服务器上安装Jar文件然后运行它,但有没有办法以编程方式执行它并在远程服务器上启动wireMock。

@rule public WireMockRule wireMockRule = new WireMockRule(wireMockConfig()                                                                       .httpsPort(8089)                                                                           。主持人(myUNIXSERVER));

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

我认为你应该尝试下面的

public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8089));

现在你正在嘲笑https://并使用https://