[JAVA] Mémorandum JUnit

J'écrirai un mémorandum de JUnit.

Assert

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.fail;

// actual =En cas d'attente, normal
assertThat(actual, is(expect));
// actual !=En cas d'attente, normal
assertThat(actual, is(not(expect)));
//Erreur
fail("error reason");

Mockito

Créer un objet simulé
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;

//Lorsque vous vous moquez de l'objet entier
Target targetMock = mock(Target.class);
//Lorsque vous vous moquez uniquement de la méthode de jeu simulé
Target targetMock = spy(Target.class);
se moquer de la méthode du vide
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;

//Terminer normalement
doNothing().when(targetMock).targetMethod(anyString(), any(Parameter.class));

//Lancer une exception * Vous pouvez spécifier une exception ou RuntimeException que la méthode cible lève
doThrow(new RuntimeException()).when(targetMock).targetMethod("01");

Dans le cas ci-dessus, une exception est levée lorsque la méthode targetMethod est appelée avec l'argument "01". Pour faire fonctionner le simulacre lorsqu'un argument arbitraire est passé, spécifiez anyString () pour String, any (nom de classe) pour objet, et ainsi de suite.

Se moquer d'une méthode avec une valeur de retour
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.when;

//Vers la valeur de retour"ok"Rendre
when(targetMock.targetMethod(anyString())).thenReturn("ok");

//Pour la première et la troisième exécution"ok", Pour la deuxième manche"ng"Rendre
when(targetMock.targetMethod(anyString())).thenReturn("ok", "ng", "ok");

//Lancer une exception * Vous pouvez spécifier une exception ou RuntimeException que la méthode cible lève
when(targetMock.targetMethod(anyString())).thenThrow(new RuntimeException());
assertion de méthode simulée
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

//Vérifiez le nombre d'exécutions de méthode
//Assurez-vous que la méthode targetMethod n'a été exécutée qu'une seule fois
verify(targetMock, times(1)).targetMethod(anyString(), anyString());
Notes sur Mockito

-L'injection de simulation par @InjectMocks est décrite pour la propriété directe de la classe spécifiée par @InjectMocks. En d'autres termes, il n'injecte pas de simulation dans @Inject dans l'objet @Inject. Si vous voulez faire cela, vous devez utiliser la réflexion pour pousser la maquette directement dans la variable.

Recommended Posts

Mémorandum JUnit
mémorandum
Junit
mémorandum
JUnit 4 notes
Mon mémorandum Batis
Histoire de JUnit
Mémorandum Rails
Jaba Jaba Souvenez-vous
Mémorandum JavaFx
Mémorandum JAVA
Mémorandum Gradle
Mémorandum Docker
mémorandum thymeleaf
[Personnel] Mémorandum JUnit5 (travail en cours)
Mémorandum technique (Docker)
Faisons JUnit.
Mémorandum de niveau de journal
Commande de mémorandum docker
Mémorandum Apache FreeMarker
Mémorandum Java (liste)
Mémorandum du didacticiel Rails 1
Tutoriel Rails Memorandum 2
Mémorandum de commande Docker
Refactoring dans JUnit
Mémorandum d'étude Java
Spring Boot Rappelez-vous
Notes d'utilisation de JUnit5
[Java] Mémorandum facultatif
Mémorandum (Spring Web)