[JAVA] Désactiver l'initialiseur statique dans 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. Simulez le constructeur avec PowerMock
  5. Méthodes privées simulées avec PowerMock
  6. Essayez d'utiliser la WhiteBox de PowerMock
  7. Désactivez l'initialiseur statique dans PowerMock ← Maintenant ici

Aperçu

PowerMock fournit l'annotation @ SuppressStaticInitializationFor pour désactiver l'initialiseur statique.

Exemple d'utilisation

Classe de moquerie

Lorsque la classe est chargée, l'initialiseur statique remplit le champ avec la chaîne "valeur".

Ici, nous avons préparé une méthode de jugement qui retourne true si le champ est défini sur "value" et false dans le cas contraire.

SampleEm.java


public class SampleEm {
	
	private static String field = null;
	
	static {
		field = "value";
	}
	
	public boolean judge() {
		return "value".equals(field);
	}
}

Classe d'essai

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

Pour @ PrepareForTest, spécifiez la classe à simuler.

Je spécifie également une classe à simuler dans @ SuppressStaticInitializationFor, mais sachez que ce n'est pas @SuppressStaticInitializationFor (SampleEm.class).

@RunWith(PowerMockRunner.class)
@PrepareForTest(SampleEm.class)
@SuppressStaticInitializationFor("jp.co.sample_powermock.staticinitializer.SampleEm")
public class SampleEmTest {

	@Test
	public void test() throws Exception {
		//Courir
		SampleEm em = new SampleEm();
		boolean result = em.judge();

		//Vérifiez le résultat
		assertFalse(result);
	}
}

Lorsque j'exécute le test, ce JUnit réussit car le champ n'est pas défini sur "valeur" en raison de la désactivation de l'initialiseur statique.

Recommended Posts

Désactiver l'initialiseur statique dans PowerMock
Désactiver les turbolinks dans les rails
Désactiver IPv6 dans CentOS8
Méthodes statiques simulées avec PowerMock
Méthodes statiques simulées dans Mockito 3.4