I have these two mock server tests.
When I launch these, the second test fail because the two tests are not launched in isolation. The mocking of the HTTP call in the first method isn’t override in the second method.
@ExtendWith(MockServerExtension.class) @MockServerSettings(ports = {8888}) class RequestTest { private final Client httpClient = ClientBuilder.newClient(); RequestTest() { } @Test void should_get_fail(MockServerClient client) { client.when(request() .withMethod("GET") .withPath("/request_1") ) .respond(response().withStatusCode(500)); var response = httpClient.target("http://localhost:8888/request_1").request().get(); assertThat(response.getStatus()).isEqualTo(500); } @Test void should_get_success(MockServerClient client) { client.when(request() .withMethod("GET") .withPath("/request_1") ) .respond(response().withStatusCode(200)); var response = httpClient.target("http://localhost:8888/request_1").request().get(); assertThat(response.getStatus()).isEqualTo(200); } }
Is there a Mock Server property or a JUnit property to run these two tests in isolation ?
Advertisement
Answer
At the beginning of each test, simply add this line:
client.reset();