- mock pentru functii statice
- mock pentru functii private
class Calculator {
public static int add(int a1, int a2) {
return a1 + a2;
}
}
class Operatii {
public int operatieComplexa(int a1, a2) {
int a = Calculator.add(a1, a2);
return ++a;
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest({Calculator.class})
class TestOperatii {
@Test
public void testOperatieComplexa() {
PowerMock.mockStatic(Calculator.class);
EasyMock.expect(Calculator.add(1, 2).andReturn(3);
PowerMock.replayAll();
Operatii obj = new Operatii();
int ret = obj.operatieComplexa(1, 2);
PowerMock.verifyAll();
Assert.assertEquals(4, ret);
}
}
Asta e tot. In momentul in care se executa testul in loc sa se foloseasca metoda statica add din clasa Calculator se foloseste o metoda injectata. Cateva elemente interesante sunt enumerate mai jos:
- @RunWith(PowerMockRunner.class). Indica JUnit sa foloseasca clasa PowerMockRunner pentru rularea testelor(nu merge fara asta datorita faptului ca PowerMock implementeaza un class loader custom).
- @PrepareForTest({Calculator.class}). In aceasta anotare se enumera clasele pentru care se va face mockStatic.
Niciun comentariu:
Trimiteți un comentariu