Ho la seguente classe:PowerMockito: come simulare i metodi chiamati dal costruttore?
public class Foo {
public Foo() {
initField1();
initField2();
initField3();
}
}
ho bisogno di modificare il comportamento (per prendere in giro) initField1()
e initField3()
per loro fare non fare nulla o qualcos'altro che fanno effettivamente. Sono interessato ad eseguire il codice effettivo di initField2().
voglio scrivere il seguente test:
Foo foo = new Foo();
assertTrue(foo.myGet());
myGet()
restituisce un attributo di Foo che è stato calcolato da initField2()
.
I metodi initField()
sono ovviamente privati.
Come posso fare una cosa del genere?
Grazie per il vostro aiuto e cordiali saluti.
Questo è un codice legacy. Preferisco non modificare la classe in esame scrivendo un nuovo costruttore che accetta argomenti per esempio. Voglio solo 'initField2()' per essere eseguito perché è responsabile per l'impostazione del campo che voglio testare. Non sono interessante nel testare il resto della logica del costruttore. –
Mockito è pensato per simulare l'interazione, PowerMock è pensato per deridere il funzionamento interno parziale di una classe per il codice legacy, quindi questa risposta è semplicemente sbagliata. – eis