wie teilweise mock öffentliche Methode mit PowerMock?
Folgende ist meine Klasse
public class SomeClass {
public ReturnType1 testThisMethod(Type1 param1, Type2 param2) {
//some code
helperMethodPublic(param1,param2);
//more code follows
}
public ReturnType2 helperMethodPublic(Type1 param1, Type2 param2) {
//some code
}
}
So, in der obigen Klasse während des Tests testThisMethod(), möchte ich teilweise mock helperMethodPublic().
Als jetzt, mache ich die folgenden:
SomeClass someClassMock =
PowerMock.createPartialMock(SomeClass.class,"helperMethodPublic");
PowerMock.expectPrivate(someClassMock, "helperMethodPublic, param1, param2).
andReturn(returnObject);
Der compiler nicht meckern. Also versuche ich meinen test und wenn der code trifft helperMethodPublic () - Methode, die Steuerung geht in die Methode und startet die Ausführung jeder Codezeile. Wie kann ich das verhindern?
InformationsquelleAutor maverick | 2012-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weitere Lösung, die sich nicht auf ein mock-framework wäre zu überschreiben 'helperMethodPublic' in einer anonymen Unterklasse definiert in Ihrem test:
Dann, wenn Sie diese Instanz in Ihrem test ausgeführt wird die original-version von 'testThisMethod' und die überschriebene version von 'helperMethodPublic'
Danke für diese, es war eine perfekte Lösung für ein ähnliches problem hatte ich auch. Ich hätte nie thougth von diesem genialen techniique!
InformationsquelleAutor pedorro
Ich denke, es ist wegen dem, was Jeff sagte.
Versuchen, diese - Einstellung, eine Erwartung, die wie jede andere verspottet Methode:
InformationsquelleAutor psb
Ich würde vermuten, das ist so, weil "helperMethodPublic" ist nicht eine private-Methode (wie in PowerMock.expectPrivate). PowerMock ist ein Rahmen, der sich anderen mocking-frameworks, um die Dinge hinzufügen wie mocking private und statische Methoden (die JMock, Mockito, etc. nicht behandeln). Eine partielle mock von öffentlichen Methoden sollte etwas sein, das Ihr zugrunde liegenden mock-framework übernimmt.
InformationsquelleAutor jeff