Если вы хотите проверить свои конечные точки API, Spring предоставляет различные аннотации и различные способы тестирования приложения. Например:
- Вы можете запустить сервер во время тестового примера, инициализировать контекст приложения Spring, а затем протестировать API, нажав его, чтобы подтвердить результат.
- Вы можете просто использовать весенняя аннотация
@SpringBootTest
вместе с @AutoConfigureMockMvc
для настройки контекста приложения без запуска сервера для тестирования приложения до конца. - Еще один подход, когда вы не хотите тестировать все приложение, а просто нужно Тестирование веб-слоя заключается в использовании аннотации
@WebMvcTest
. В этом случае вам нужно смоделировать сервисный слой и любые другие bean-компоненты, которые могут понадобиться для получения желаемого результата.
Вы можете использовать аннотацию @SpringBootTest
, чтобы сообщить Spring, что он должен запустить сервера и сконфигурируйте контекст приложения для запуска теста.
Аннотация @SpringBootTest
указывает Spring Boot искать основной класс конфигурации (например, с @SpringBootApplication
) и использовать его для запустите контекст приложения Spring.
В этом случае вам не нужно будет запускать сервер вручную. Spring позаботится обо всем, и как только тесты будут завершены, он также остановит сервер. я не пытался скомпилировать или запустить код, но использовал:
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class HttpRequestTest {
@LocalServerPort
private int port;
final String versionNumber = "v1";
final String pathUrl = "/dgcontroller/services/restAPIs/";
final String sessionId = "2";
@Test
public void idpsTest() throws ClientProtocolException, IOException {
String baseUrl = "http://localhost:"+port+pathUrl;
HttpUriRequest request = new HttpGet(baseUrl + versionNumber + "/idps");
request.addHeader("sessionId", sessionId);
HttpResponse httpResponse = HttpClientBuilder.create().build().execute(request);
System.out.println(">>>>>>>>>>>>>>>." + httpResponse.getStatusLine().getStatusCode());
assertEquals(200, httpResponse.getStatusLine().getStatusCode());
// Getting Json From Http Response
String json = EntityUtils.toString(httpResponse.getEntity());
System.out.println(">>>>>>>>>>>>>>>." + json);
}
}
Это должно работать, если в вашем pom.xml
есть следующая зависимость:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>