...
| Bloque de código | ||
|---|---|---|
| ||
@TestPropertySource( locations = "classpath:application-test.properties" )
@ContextConfiguration( classes = {MiServivico.class} )
@SpringBootTest
@Import( WebClientTestConfiguration.class )
@TestInstance( TestInstance.Lifecycle.PER_CLASS )
class MiTestConServiciosExternosTest {
...
...
@Autowired
private MiServivico servicio;
// private static MockServer mock;
private static MockWebServer mockServer;
@BeforeAll
public void iniciaMockServer() {
//Creamos una instancia de mockServer
mockServer = new MockWebServer();
try {
//Arrancamos mockServer en el puerto que hemos indicado en la configuración
mockServer.start( WebClientTestConfiguration.PORT );
} catch ( IOException e ) {
log.error("Error inicianzo mockserver",e)
}
}
@AfterAll
static void finalizaMockServer() {
if ( mockServer != null ) {
// mockServer.stop();
try {
mockServer.shutdown();
} catch ( IOException e ) {
log.error("Error deteniendo mockserver",e)
}
}
}
@Test
void miTest() throws Exception {
String datosARecibir1 = "json1";
String datosARecibir2 = "json2";
//Encolamos las respuestas a recibir
mockServer.enqueue( new MockResponse().setBody( datosARecibir1 ).addHeader( "Content-Type", "application/json" ) );
mockServer.enqueue( new MockResponse().setBody( datosARecibir2 ).addHeader( "Content-Type", "application/json" ) );
String salida = servicio.metodoServicioConWebClient();
assertThat( salida ).isEqualTo( "Respuesta esperada1json1" );
salida = servicio.metodoServicioConWebClient();
assertThat( salida ).isEqualTo( "Respuesta esperada2json2" );
}
...
...
} |
Del código anterior los detalles importantes son
...