Ich bin nicht in der Lage verspotten etwas (statisch oder nicht statischen Methoden) von Mockito zu verspotten,Mockito: Es kann keine statische und nicht-statische Methode
Das sind meine Klassen,
Calculations.java
public class Calculations {
public void printZero() {
System.out.println("zero");
}
public static void printOne() {
System.out.println("one");
}
}
Das ist mein PostData.java
public class PostData {
public static Calculations calc = new Calculations();
public static void postTheData() {
calc.printZero();
Calculations.printOne();
}
}
Die Unit-Test-Klasse, TestClass.java
public class TestClass {
@Test
public void addTest() {
Calculations lmock = mock(Calculations.class);
// can't have Calculations.calc.printZero() in when() :cause: argument passes to when() must be a mock object.
doNothing().when(lmock).printZero();
// cause: method when(void) is undefined for the type TestClass
// when(lmock.printZero()).doNothing();
// cause: argument passed to when() must be a mock object.
// doNothing().when(Calculations.printOne());
PostData.postTheData();
}
}
Sein zusammengestellt und sein Druck „Null“ sowie „Eins“ in meiner Ausgabe, die im Idealfall ignoriert werden soll.
Ich verwende Cloud-Mockito-all-1.10.19.jar für Mockito. Und junits neueste JAR-Datei.
Ich weiß, ich vermisse hier etwas, aber kann nicht herausfinden, was! Es wäre eine große Hilfe, wenn Sie mir antworten können.
Sie verwenden nicht die verspottete 'Calculations'-Klasse - Sie verwenden die statische in' PostData'. Sie müssen jedoch PowerMockito verwenden, um statische Methoden vorzutäuschen. –
* "Ich kann nichts vorspielen (statische oder nicht statische Methoden) von Mockito" * Sie können also statische Methoden in Mockito vortäuschen, obwohl es nicht funktioniert und nicht unterstützt wird? Du brauchst zusätzliche Sachen wie PowerMock dafür. – Tom