So come deridere i metodi statici da una classe usando PowerMock.
Ma voglio prendere in giro metodi statici da più classi in una classe di test usando JUnit e PowerMock.
Qualcuno può dirmi è possibile farlo e come farlo?
So come deridere i metodi statici da una classe usando PowerMock.
Ma voglio prendere in giro metodi statici da più classi in una classe di test usando JUnit e PowerMock.
Qualcuno può dirmi è possibile farlo e come farlo?
Risposte:
Basta fare @PrepareForTest({Class1.class,Class2.class})
per più classi.
@RunWith(PowerMockRunner.class)
il livello di classe
@Rule public PowerMockRule rule = new PowerMockRule();
@PrepareForTest(Class1::class, Class2::class))
@PrepareOnlyThisForTest
posto di @PrepareForTest
. Quest'ultimo modifica anche le superclassi, che normalmente non è necessario.
@Test
@PrepareForTest({Class1.class, Class2.class})
public final void handleScript() throws Exception {
PowerMockito.mockStatic(Class1.class);
PowerMockito.mockStatic(Class2.class);
eccetera...
PowerMock 1.6.5
problemi di utilizzo @PrepareForTest
a livello di metodo (funziona solo a livello di classe per me)
In java con powermock / junit, usa @PrepareForTest({})
tutte le classi statiche che vuoi come array ( {}
).
@RunWith(PowerMockRunner.class)
@PrepareForTest({XmlConverterA.class, XmlConverterB.class})
class TransfersServiceExceptionSpec {
}
Ho usato powermock con in scala / junit, poiché scalatest non ha l'integrazione con powermock.
@RunWith(classOf[PowerMockRunner])
@PrepareForTest(Array(classOf[XmlConverterA], classOf[XmlConverterB]))
class TransfersServiceExceptionSpec {
@Test
def test() {
}
}