Wie verwende ich PowerMockito zurück ein mock-Objekt aus der statischen Klasse
Hey, ich bin mit Mockito und TestNG, um Schreibe einen unit test für eine Klasse, die eine Menge von externen anrufen an ein service, ich bin eigentlich Recht neu hier-daher scheine ich zu sein stecken, mit wenig Dokumentation im Netz für mein problem genauer.
mein test sieht aus wie dieser im Grunde
@Test
public class ClassToTestTest{
@Mock
private Object1 object1;
@Mock
private Object2 object2;
@InjectMocks
private ClassToTest classToTest;
public void test1(){
classToTest.methodToTest();
}
...
...
}
In der aktuellen Klasse ist wie folgt
import FinalClass;
public class ClassToTest{
private Object1 object1;
private Object2 object2;
public void methodToTest(){
object2 = FinalClass.getObject2();
...
...
}
...
...
}
Brauche ich nur FinalClass.getObject2() zur Rückgabe der mock Object2, die ich erstellt habe in meinem Test, ich weiß, ich kann mock FinalClass mit PowerMock, aber ich bin mir nicht ganz bekommen wie zu injizieren und es in den classToTest, die ich erstellt habe, so dass wenn ich den classToTest.methodToTest() von meinem test objekt2 wird initialisiert mit meinem verspottet Umsetzung.
Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen fehlt die annotation @PrepareForTest und die Verwendung von mockStatic (), die erforderlich sind, wenn Sie wollen, zu verspotten, eine endgültige statische Klasse mit PowerMockito. Ich denke, dass Sie vielleicht verwirrt ist, dass Sie ' re Umgang mit einem
final static
Klasse und nicht nur einfinal
Klasse, so gibt es ein paar zusätzliche mock-Aufrufe, die Sie brauchen, um sich bewusst sein.Angesichts dieser Implementierung Klassen
Stellen Sie sicher, dass Sie
powermock-mockito-1.4.10-full.jar
in Ihrem Projekt, dann können Sie diese test-KlasseKönnen Sie sehen, dass
expectedObject
ist ein mock, die Sie erstellt haben, in der test und nicht die Implementierung zurückgegeben von FinalStaticClassstatic final
Art Ihrer Klasse