- WebTestClient used to simplify external web service calls into microservice
- SpringBootTest enabled with WebEnvironment defined port to enable webserver
- Hoverfly to mock external webservice and provide precanned responses
package hello; import io.specto.hoverfly.junit.core.HoverflyConfig; import io.specto.hoverfly.junit.rule.HoverflyRule; import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.reactive.server.WebTestClient; import static io.specto.hoverfly.junit.core.SimulationSource.defaultPath; @RunWith(SpringRunner.class) @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes = hello.Application.class) public class IntegrationTests { @ClassRule public static HoverflyRule hoverflyRule = HoverflyRule.inSimulationMode(defaultPath("sm9-create-ticket.json"), HoverflyConfig.localConfigs().asWebServer().proxyPort(8500)); @Autowired private WebTestClient webClient; @Test public void testCreateTicket() { this.webClient.get().uri("/ticket?query=x").exchange().expectStatus().isOk() .expectBody(String.class).isEqualTo("Response from HPSM for create ticket"); } }