- Publicado en
Mock HTTP request in Java & Kotlin
Simular solicitudes HTTP en Java y Kotlin
Hay ocasiones en las que necesitamos simular una solicitud HTTP en nuestras pruebas de Java. En este artículo, te mostraré cómo hacerlo.
MockWebServer
MockWebServer es un proyecto creado por Square que está disponible tanto para Kotlin como para Java. En este ejemplo, usaremos Java.
Agregar dependencias
Usaremos Maven. Agrega la siguiente dependencia a tu archivo pom.xml:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<version>5.0.0-alpha.14</version>
<scope>test</scope>
</dependency>
Además, para las pruebas utilizaremos JUnit5.
Crear un servicio básico
Vamos a crear un servicio básico que realizará una solicitud a un servidor.
private final WebClient webClient;
public MyService() {
this.webClient = WebClient.create();
}
public String get(String url) {
return webClient.get()
.uri(url)
.retrieve()
.bodyToMono(String.class)
.block();
}
Crear una prueba
Ahora vamos a crear una prueba que simulará la respuesta del servidor.
public static final String RESPONSE = "Esta es una respuesta simulada";
private MockWebServer mockServer;
private MyService service;
@BeforeEach
void setUp() throws IOException {
this.service = new MyService();
mockServer = new MockWebServer();
mockServer.start();
}
@AfterEach
void tearDown() throws IOException {
mockServer.shutdown();
}
@Test
void get(){
//GIVEN
mockServer.enqueue(new MockResponse().setBody(RESPONSE));
HttpUrl baseUrl = mockServer.url("api/chat");
//WHEN
String result = service.get(baseUrl.toString());
//THEN
assertEquals(RESPONSE, result);
}
Conclusión
MockWebServer es una excelente herramienta para simular solicitudes HTTP en Java y Kotlin. Es fácil de usar y muy poderosa.
Comentarios deshabilitados en el blog
Autores

- Nombre
- Adrian Ferrandis