Nach dem Lesen: https://code.google.com/p/powermock/wiki/BypassEncapsulation ich erkannte, ich verstehe es nicht.PowerMock Zugriff private Mitglieder
Siehe in diesem Beispiel:
public class Bar{
private Foo foo;
public void initFoo(){
foo = new Foo();
}
}
Wie kann ich die privaten Member Zugang foo
von PowerMock (zum Beispiel, um zu überprüfen, dass foo
nicht null ist)?
Hinweis:
Was ich will nicht, um den Code mit extra get
Methoden zu ändern.
Edit:
Ich erkannte, dass ich einen Beispielcode Block auf der gelinkten Seite ggf. mit der Lösung verpasst.
Lösung:
Whitebox.getInternalState(bar, "foo");
Ich würde empfehlen, sorgfältig zu überlegen, bevor Sie diese Art von Test schreiben, Argumente gegen die Überprüfung der Wert der privaten Variable hier zusammengefasst: https://stackoverflow.com/questions/2981476/does-jmockit-have-any-drawbacks-at- all/7499979 # 7499979 – codebox
Der echte Test ist ein bisschen komplexer und beinhaltet Hibernate, Session und Sessionfactory, ich versuche unser dbInterface zu überprüfen, ohne komplette Hibernate-Sachen initialisieren zu müssen. In den meisten Methoden modifizieren wir einen Objektstatus und haben keine echte Input/Output-Funktionalität. – Gobliins