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.
}
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);
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