[JAVA] Mock le constructeur avec PowerMock

table des matières

  1. Procédure de création d'un environnement pour l'utilisation de PowerMock
  2. Mock and Spy in PowerMock
  3. Méthodes statiques simulées avec PowerMock
  4. Mock le constructeur avec PowerMock ← Maintenant ici
  5. Méthodes privées simulées avec PowerMock
  6. Essayez d'utiliser la WhiteBox de PowerMock
  7. Désactiver l'initialiseur statique dans PowerMock

Aperçu

Avec PowerMock, vous pouvez lui faire retourner n'importe quel objet lorsqu'il est instancié, ou renvoyer une exception.

On suppose que le constructeur de la classe Utility (classe moqueuse) appelée depuis la classe UseUtility (classe cible de test) est simulé.

Classe testée

C'est la classe à tester qui est appelée depuis JUnit.

La classe Utility est instanciée dans la méthode et je souhaite définir les objets et les exceptions renvoyés à ce stade sur des objets arbitraires.

UseUtility.java


public class UseUtility {

	public void createUtility() throws Exception {

		Utility utility = new Utility();

		//Omis par la suite
	}
}

Classe de moquerie

Mock it et définissez un comportement arbitraire dans le constructeur.

Utility.java


public class Utility {

	public Utility() throws Exception {
		//réduction
	}
}

Classe d'essai

Un JUnit qui appelle la classe testée.

Pour utiliser PowerMock avec JUnit, spécifiez PowerMockRunner pour @ RunWith.

Notez que dans @ PrepareForTest, vous devez écrire non seulement la classe à se moquer, mais également la classe qui appelle le constructeur.

UseUtilityTest.java


@RunWith(PowerMockRunner.class)
@PrepareForTest({ Utility.class, UseUtility.class })
public class UseUtilityTest {
    //réduction
}

Exemple d'utilisation

thenReturn Définissez l'instance renvoyée par le constructeur de la classe simulée.

Le faux est prêt à être retourné ici, mais il ne doit pas être un simulacre.

@Test
public void test_thenReturn() throws Exception {
	//Préparation
	//Railleur
	Utility mock = PowerMockito.mock(Utility.class);
	//Définir l'instance à renvoyer par le constructeur
	PowerMockito.whenNew(Utility.class).withNoArguments().thenReturn(mock);

	//Courir
	UseUtility obj = new UseUtility();
	obj.createUtility();
}

thenThrow Définissez une exception qui se produit dans le constructeur de la classe simulée.

@Test(expected = Exception.class)
public void test_thenThrow() throws Exception {
	//Préparation
	Exception exception = new Exception("error!");

	//Railleur
	PowerMockito.mock(Utility.class);
	//Définir les exceptions qui se produisent dans le constructeur
	PowerMockito.whenNew(Utility.class).withNoArguments().thenThrow(exception);

	//Courir
	UseUtility obj = new UseUtility();
	obj.createUtility();
}

Valider le constructeur

PowerMock fournit verifyNew pour valider les constructeurs simulés.

Vous pouvez utiliser les heures de Mockito, atLeast, asLeastOnce, etc. pour vérifier le nombre d'appels.

verifyNew (Utility.class) est synonyme de verifyNew (Utility.class, times (1)).

//Confirmez qu'il a été appelé une fois
PowerMockito.verifyNew(Utility.class).withNoArguments();

Recommended Posts

Mock le constructeur avec PowerMock
Mock Enum avec PowerMock
Méthodes statiques simulées avec PowerMock
Comment se moquer de chaque cas avec PowerMock + Mockito1x
Méditez la querelle entre Power Mock et Jacoco avec Gradle
MOCK les constructeurs d'autres classes avec Spring MVC + PowerMock + Junit
Changer de port avec SpringBoot
A quoi sert le constructeur?
Avec l'erreur Cordova-> Looper.prepare ()
J'ai étudié le constructeur (java)
NoSuchMethodException avec lombok sans constructeur par défaut
Simuler la méthode simplex avec GUI
Utiliser le constructeur avec des arguments dans cucumber-picocontainer
Faites défiler automatiquement l'arrière-plan avec libGDX
Programmation avec ruby (en route)
Suivez le lien avec Selenium (Java)
Placer au milieu avec css
Mock seulement quelques méthodes avec Spock
Tracez le tutoriel Datomic avec Datascript
Le gars qui essaie avec des ressources avec Kotlin
Traitement d'image: jouons avec l'image