[JAVA] Verspotten und spionieren Sie PowerMock aus

Inhaltsverzeichnis

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

Überblick

Um ein beliebiges Verhalten mit der statischen und der privaten Methode in PowerMock festzulegen, muss zunächst die Zielklasse verspottet / ausspioniert werden.

Hier wird angenommen, dass die Utility-Klasse verspottet / spioniert ist.

Utility.java


public class Utility {
	//Der Inhalt wird weggelassen. Alles ist gut.
}

Verspottung

Das Verspotten in PowerMock wird wie in Mockito verwendet, um das Verhalten einer Methode beim Testen von Einheiten willkürlich zu definieren. Sie können auch die Anzahl der Anrufe aufzeichnen und überprüfen.

Unmittelbar nach dem Verspotten befindet sich das Verspottungsobjekt in einem Zustand, in dem das Verhalten der Methode nicht definiert ist. Verwenden Sie es daher, indem Sie einen Rückgabewert oder eine Ausnahme mit doReturn oder doThrow definieren. (* Methoden, die kein Verhalten definieren, geben null als Rückgabewert zurück.)

Übergeben Sie zum Verspotten die Klasse der Klasse, die Sie verspotten möchten, an das Argument von PowerMockito.mock.

Utility mock = PowerMockito.mock(Utility.class);

Spion

Im Gegensatz zum Verspotten wird Spionage verwendet, wenn Sie für einige Methoden ein beliebiges Verhalten definieren möchten.

Unmittelbar nach dem Ausspionieren verhält sich die Utility-Klasse genauso wie eine Instanz der regulären Utility-Klasse. (Aufzeichnung und Überprüfung der Anzahl der Anrufe ist möglich.)

Mit anderen Worten, es funktioniert genauso wie eine normale Methode, mit Ausnahme von Methoden, die willkürliche Verhaltensweisen und Ausnahmen mit doReturn, doThrow usw. festlegen.

Übergeben Sie zum Ausspionieren die Instanz der Klasse, die Sie verspotten möchten, im Argument von PowerMockito.spy.

Utility spy = PowerMockito.spy(new Utility());

Recommended Posts

Verspotten und spionieren Sie PowerMock aus
Mock Enum mit PowerMock
Verspotten Sie statische Methoden mit PowerMock
Mock and Stub in RSpec
Verspotten Sie den Konstruktor mit PowerMock
Aktivieren Sie Openjdk10 und Maven unter CentOS
Installieren Sie JDK und JRE unter Ubuntu 16.10
Installieren und konfigurieren Sie jenv unter macOS
Ordnungsgemäße Verwendung von Mockito und PowerMock
Aktivieren Sie Java 8- und Java 11-SDKs unter Ubuntu
Hinweise zum Java-Pfad und -Paket
Installieren Sie Java 9 unter Windows 10 und CentOS 7