Exemple de test de service web utilisant JUnit couplé à Mockito
package fr.dyma;
import fr.dyma.exception.InvalidClientDetailsException;
import fr.dyma.repository.ClientRepository;
import fr.dyma.sevice.ClientDetailsService;
import fr.dyma.sevice.impl.ClientDetailsServiceImpl;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@ExtendWith(MockitoExtension.class)
public class ClientDetailsServiceTest {
@Mock
ClientRepository clientRepo;
@InjectMocks
static ClientDetailsService clientDetailsService = new ClientDetailsServiceImpl();;
@BeforeEach
public void init() {
MockitoAnnotations.openMocks(this);
}
@Test
public void getClientDetails_should_return_client() throws InvalidClientDetailsException {
Integer clientId = 1;
Client client = new Client(clientId, "Tuan", "tuan@gmail.com");
Mockito.when(clientRepo.getClient(clientId)).thenReturn(client);
Client clientDetails = clientDetailsService.getClientDetails(clientId);
assertThat(clientDetails).isEqualTo(client);
}
@Test
public void getClientDetails_should_throw_exception_when_client_name_is_blank() {
Integer clientId = 1;
Client client = new Client(clientId, "", "tuan@gmail.com");
Mockito.when(clientRepo.getClient(clientId)).thenReturn(client);
assertThatThrownBy(() -> {
clientDetailsService.getClientDetails(clientId);
})
.isInstanceOf(InvalidClientDetailsException.class)
.hasMessage("Client name is blank");
}
}
Langage du code : JavaScript (javascript)