Les tests avec WebFlux
Spring a mis à disposition un certain nombre d’outils pour faciliter les tests.
1. Tests unitaires
Les test unitaires correspondent aux tests de bas niveau.
a. Tests unitaires avec des applications réactives
Nous pouvons utiliser le traditionnel Mockito.
Pour une classe :
public class UtilisateurService {
public Mono<Utilisateur> getUtilisateurById(Integer utilisateurId) {
return webClient
.get()
.uri("http://localhost:8080/utilisateur/{id}", utilisateurId)
.retrieve()
.bodyToMono(Utilisateur.class);
}
}
Nous pouvons avoir le test unitaire :
@ExtendWith(MockitoExtension.class)
public class UtilisateurServiceTest {
@Test
void givenUtilisateurId_whenGetUtilisateurById_thenReturnUtilisateur() {
Integer utilisateurId = 100;
Utilisateur mockUtilisateur = new Utilisateur(1, "Toto", 51);
when(webClientMock.get())
.thenReturn(requestHeadersUriSpecMock);
when(requestHeadersUriMock.uri("/utilisateur/{id}", utilisateurId))
.thenReturn(requestHeadersSpecMock);
when(requestHeadersMock.retrieve())
.thenReturn(responseSpecMock);
when(responseMock.bodyToMono(Utilisateur.class))
.thenReturn(Mono.just(mockUtilisateur));
Mono<Utilisateur> utilisateurMono...