Ausnahme : mockito wollte aber nicht aufgerufen werden, Eigentlich gibt es gar keine Wechselwirkungen mit diesem mock
Habe ich interface
Interface MyInterface {
myMethodToBeVerified (String, String);
}
Und Umsetzung der Schnittstelle ist
class MyClassToBeTested implements MyInterface {
myMethodToBeVerified(String, String) {
…….
}
}
Habe ich eine andere Klasse
class MyClass {
MyInterface myObj = new MyClassToBeTested();
public void abc(){
myObj.myMethodToBeVerified (new String(“a”), new String(“b”));
}
}
Ich bin versucht, zu schreiben JUnit für MyClass. Ich habe getan,
class MyClassTest {
MyClass myClass = new MyClass();
@Mock
MyInterface myInterface;
testAbc(){
myClass.abc();
verify(myInterface).myMethodToBeVerified(new String(“a”), new String(“b”));
}
}
Aber ich bin immer mockito wollte aber nicht aufgerufen werden, Eigentlich gibt es gar keine Wechselwirkungen mit diesem mock zu überprüfen, rufen Sie.
kann jemand empfehlen, einige Lösungen.
InformationsquelleAutor user3096719 | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie injizieren mock in der Klasse, die Sie testen wollen. Im moment sind Sie die Interaktion mit dem realen Objekt, nicht mit der Attrappe. Kann man den code in folgender Weise:
obwohl es wäre eine klügere Wahl zu extrahieren alle Initialisierungs-code in @Vor
Wir können Mockito.mock, dass wir mit einer setter-Methode für myObj und legen Sie die verspottet Objekt myObj.
InformationsquelleAutor Jk1
Ihre Klasse
MyClass
erstellt eine neueMyClassToBeTested
, statt mit Ihrem Schein. In meinem Artikel über die Mockito-wiki beschreibt zwei Wege, damit umzugehen.InformationsquelleAutor Dawood ibn Kareem
@Jk1 s Antwort ist gut, aber Mockito ermöglicht auch weitere prägnante injection mit Annotationen:
Aber unabhängig davon, welche Methode Sie verwenden, werden die Kommentare nicht bearbeitet (auch nicht Ihre @Mock), es sei denn, Sie irgendwie rufen Sie die statische
MockitoAnnotation.initMocks()
oder kommentieren Sie die Klasse mit@RunWith(MockitoJUnitRunner.class)
.InformationsquelleAutor Kevin Welker
@jk1 Antwort ist perfekt, da @igor Ganapolsky fragte, warum können wir nicht Mockito.mock hier? ich poste diese Antwort.
Dafür haben wir bieten eine setter-Methode für myobj und legen Sie die myobj Wert verspottet Objekt.
In unserer Test-Klasse, die wir haben, schreiben Sie folgenden code
InformationsquelleAutor vijaya kumar