Wiem, jak mockować metody statyczne z klasy za pomocą PowerMock.
Ale chcę mockować statyczne metody z wielu klas w klasie testowej przy użyciu JUnit i PowerMock.
Czy ktoś może mi powiedzieć, czy można to zrobić i jak to zrobić?
Wiem, jak mockować metody statyczne z klasy za pomocą PowerMock.
Ale chcę mockować statyczne metody z wielu klas w klasie testowej przy użyciu JUnit i PowerMock.
Czy ktoś może mi powiedzieć, czy można to zrobić i jak to zrobić?
Odpowiedzi:
Po prostu zrób @PrepareForTest({Class1.class,Class2.class})
dla wielu zajęć.
@RunWith(PowerMockRunner.class)
poziomem klasowym
@Rule public PowerMockRule rule = new PowerMockRule();
@PrepareForTest(Class1::class, Class2::class))
@PrepareOnlyThisForTest
zamiast @PrepareForTest
. Ta ostatnia modyfikuje również nadklasy, co zwykle nie jest potrzebne.
@Test
@PrepareForTest({Class1.class, Class2.class})
public final void handleScript() throws Exception {
PowerMockito.mockStatic(Class1.class);
PowerMockito.mockStatic(Class2.class);
itp...
PowerMock 1.6.5
problemy z używaniem @PrepareForTest
na poziomie metody (u mnie działa tylko na poziomie klasy)
W języku Java z powermock / JUnit, wykorzystania @PrepareForTest({})
z tak wielu klas statycznych, jak chcesz jak array ( {}
).
@RunWith(PowerMockRunner.class)
@PrepareForTest({XmlConverterA.class, XmlConverterB.class})
class TransfersServiceExceptionSpec {
}
Użyłem powermock w scala / junit, ponieważ scalatest nie ma integracji z powermockiem.
@RunWith(classOf[PowerMockRunner])
@PrepareForTest(Array(classOf[XmlConverterA], classOf[XmlConverterB]))
class TransfersServiceExceptionSpec {
@Test
def test() {
}
}