I have a problem... Part #1 I have Java classes that have methods and I need to test them, so I write JUnit test #2 I have an HTTP Endpoint that I need to test In my test I need to... to test a RestController Endpoint (Http) I need to: A) make sure the microservice is running B) create an Http request (GET/POST/etc) C) Send that request D) check the expected JSON results against the actual JSON results E) send a bad request and check the expeced Http Status returns F) repeat for each Endpoint, and each Http status It turns out Spring Boot has a helper, here is a simple test, this will start the Microservice as part of the test: package com.example.microservice; import static org.springframework.http.MediaType.APPLICATION_JSON; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.reactive.server.WebTestClient; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureWebTestClient class ApiApplicationTests { @Autowired private WebTestClient client; @Test void getRouteByCode() { client.get() .uri("/route/C1") .accept(APPLICATION_JSON) .exchange() .expectStatus().isOk() .expectHeader().contentType(APPLICATION_JSON) .expectBody() .jsonPath("$.name").isEqualTo("Camino Francés") .jsonPath("$.count").isEqualTo(33) .jsonPath("$.stages.length()").isEqualTo(34); } } to get the WebTestClient, I need this dependency org.springframework.boot spring-boot-starter-webflux https://jsonpath.com/ https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html