WireMock for each test version, depending on the second test

I use WireMock to test the Spring Boot web application, which Jetty itself uses, albeit on different ports.

What I see is if I use the basic Rule configuration:

@Rule
public WireMockRule wireMockRule = new WireMockRule(8006); 

and I use stubForin the method @Before, and then immediately follow this call to the infected URL (via Spring RestTemplate), the first test case works without failures, but then the second test case hangs. Bit of the corresponding stack trace:

"main" prio=10 tid=0x00007f60a4009000 nid=0xb8d0 runnable [0x00007f60abcec000]
    java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:146)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    - locked <0x00000000f33e8d00> (a java.io.BufferedInputStream)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:688)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:767)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1162)
    - locked <0x00000000f33da7c8> (a sun.net.www.protocol.http.HttpURLConnection)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:397)
    at org.springframework.http.client.SimpleClientHttpResponse.getRawStatusCode(SimpleClientHttpResponse.java:48)
    at org.springframework.http.client.AbstractClientHttpResponse.getStatusCode(AbstractClientHttpResponse.java:33)
    at org.springframework.web.client.DefaultResponseErrorHandler.getHttpStatusCode(DefaultResponseErrorHandler.java:56)
    at org.springframework.web.client.DefaultResponseErrorHandler.hasError(DefaultResponseErrorHandler.java:50)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:542)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:502)
    at org.springframework.web.client.RestTemplate.put(RestTemplate.java:381)

, " ", . , WireMock / , , , .

UPDATE: , ~ 200 :

nested exception is java.net.SocketException: Unexpected end of file from server

,

+4
1

WireMock @Rule WireMockRule wireMockRule = new WireMockRule (Options.DYNAMIC_PORT)

. , :)

0

Source: https://habr.com/ru/post/1539009/


All Articles