2017-08-23 1 views
-1

Ich habe eine Klasse unterWie eine einzige Zeile Code innerhalb einer Methode aus einem anderen Verfahren unter Verwendung von Mockito

class MyClass{ 
    void setX(){ 
     statement1; 
     statement2; 
     obj.setY();    
    } 

    void setY(){ 
     statement3; 
     anotherObj.setZ(); 
    } 
} 

ich die Linie anotherObj.setZ() mit Mockito möchte genannt Stub Stub. Wie mache ich das.

+0

Sie müssen deutlicher machen, was obj und anotherObj sind. Momentan sieht es so aus, als wäre obj eine Instanz von MyClass. Ist das richtig? – Plog

Antwort

1

Es hängt davon ab, wo anotherObj initialisiert wird. Wenn es im Konstruktor von MyClass initialisiert wird, dann ist es einfach:

AnotherObj anotherObjMock = Mockito.mock(AnotherObj.class); 
MyClass classToTest = new MyClass(anotherObjMock); 
Mockito.when(anotherObjMock.setZ()).thenReturn(whatever); 

Wenn es um die Sethos lokalen ist() -Methode dann mit PowerMock es wahrscheinlich möglich, aber ehrlich gesagt ist es wahrscheinlich mehr ein Indikator, dass der Code nicht gut geschrieben wird Testen und Sie sollten Refactoring in Betracht ziehen.

Verwandte Themen