[JAVA] Verspotten Sie den Konstruktor mit PowerMock

Inhaltsverzeichnis

  1. Verfahren zum Erstellen einer Umgebung für die Verwendung von PowerMock
  2. Mock and Spy in PowerMock
  3. Statische Methoden mit PowerMock verspotten
  4. Verspotten Sie den Konstruktor mit PowerMock ← Jetzt hier
  5. Private Methoden mit PowerMock verspotten
  6. Verwenden Sie die WhiteBox von PowerMock
  7. Statischen Initialisierer in PowerMock deaktivieren

Überblick

Mit PowerMock können Sie festlegen, dass jedes Objekt bei der Instanziierung zurückgegeben oder eine Ausnahme zurückgegeben wird.

Es wird angenommen, dass der Konstruktor der Utility-Klasse (Mocking-Klasse), der von der UseUtility-Klasse (Testzielklasse) aufgerufen wird, verspottet wird.

Getestete Klasse

Dies ist die zu testende Klasse, die von JUnit aufgerufen wird.

Die Utility-Klasse wird in der Methode instanziiert, und ich möchte die zu diesem Zeitpunkt zurückgegebenen Objekte und Ausnahmen auf beliebige setzen.

UseUtility.java


public class UseUtility {

	public void createUtility() throws Exception {

		Utility utility = new Utility();

		//Danach weggelassen
	}
}

Spottklasse

Verspotten Sie es und definieren Sie ein beliebiges Verhalten im Konstruktor.

Utility.java


public class Utility {

	public Utility() throws Exception {
		//Kürzung
	}
}

Testklasse

Eine JUnit, die die zu testende Klasse aufruft.

Um PowerMock mit JUnit zu verwenden, geben Sie PowerMockRunner für "@ RunWith" an.

Beachten Sie, dass Sie in @ PrepareForTest nicht nur die zu verspottende Klasse schreiben müssen, sondern auch die Klasse, die den Konstruktor aufruft.

UseUtilityTest.java


@RunWith(PowerMockRunner.class)
@PrepareForTest({ Utility.class, UseUtility.class })
public class UseUtilityTest {
    //Kürzung
}

Anwendungsbeispiel

thenReturn Legen Sie die vom Konstruktor der verspotteten Klasse zurückgegebene Instanz fest.

Der Mock soll hier zurückgegeben werden, muss aber kein Mock sein.

@Test
public void test_thenReturn() throws Exception {
	//Vorbereitung
	//Verspottung
	Utility mock = PowerMockito.mock(Utility.class);
	//Legen Sie die Instanz fest, die vom Konstruktor zurückgegeben werden soll
	PowerMockito.whenNew(Utility.class).withNoArguments().thenReturn(mock);

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

thenThrow Legen Sie eine Ausnahme fest, die im Konstruktor der verspotteten Klasse auftritt.

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

	//Verspottung
	PowerMockito.mock(Utility.class);
	//Legen Sie Ausnahmen fest, die im Konstruktor auftreten
	PowerMockito.whenNew(Utility.class).withNoArguments().thenThrow(exception);

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

Konstruktor validieren

PowerMock bietet verifyNew zum Überprüfen verspotteter Konstruktoren.

Sie können Mockitos Zeiten, mindestens, als mindestens einmal usw. verwenden, um die Anzahl der Anrufe zu überprüfen.

verifyNew (Utility.class) ist gleichbedeutend mit verifyNew (Utility.class, times (1)).

//Bestätigen Sie, dass es einmal aufgerufen wurde
PowerMockito.verifyNew(Utility.class).withNoArguments();

Recommended Posts

Verspotten Sie den Konstruktor mit PowerMock
Mock Enum mit PowerMock
Verspotten Sie statische Methoden mit PowerMock
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
Vermitteln Sie mit Gradle den Streit zwischen Power Mock und Jacoco
MOCKEN Sie die Konstruktoren anderer Klassen mit Spring MVC + PowerMock + Junit
Ändern Sie den Port mit SpringBoot
Wofür ist der Konstruktor?
Mit dem Fehler Cordova-> Looper.prepare ()
Ich habe den Konstruktor (Java) studiert.
NoSuchMethodException mit lombok ohne Standardkonstruktor
Simulieren Sie die Simplex-Methode mit der GUI
Verwenden Sie den Konstruktor mit Argumenten in cucumber-picocontainer
Scrollen Sie automatisch mit libGDX durch den Hintergrund
Programmieren mit Ruby (unterwegs)
Folgen Sie dem Link mit Selen (Java)
Mit CSS in die Mitte legen
Verspotten Sie nur einige Methoden mit Spock
Verfolgen Sie das Datomic-Tutorial mit Datascript
Der Typ, der mit Kotlin mit Ressourcen versucht
Bildverarbeitung: Spielen wir mit dem Bild