Dopo aver letto: https://code.google.com/p/powermock/wiki/BypassEncapsulation ho capito, non capisco.membri privati di accesso PowerMock
vedere in questo esempio:
public class Bar{
private Foo foo;
public void initFoo(){
foo = new Foo();
}
}
Come posso accedere al membro privato foo
utilizzando PowerMock (ad esempio per verificare che foo
non è null)?
Nota:
Quello che non voglio è la modifica del codice con get
metodi aggiuntivi.
Edit:
mi sono reso conto che ho perso un blocco di codice di esempio nella pagina collegata con la soluzione.
Soluzione:
Whitebox.getInternalState(bar, "foo");
Mi raccomando di riflettere attentamente prima di scrivere questo tipo di test, argomenti contro il controllo del valore della variabile privata riepilogato qui: https://stackoverflow.com/questions/2981476/does-jmockit-have-any-drawbacks-at- all/7499979 # 7499979 – codebox
Il test reale è un po 'più complesso e comporta l'ibernazione, la sessione e la sessionefactory, provo a controllare il nostro dbInterface senza dover inizializzare il materiale di ibernazione completo. Nella maggior parte dei metodi modifichiamo uno stato di oggetti e non abbiamo una reale funzionalità di input/output. – Gobliins