2013-06-13 6 views
0

Я пытаюсь издеваться частный метод с PowerMock как этотMock частный метод с Mockito и PowerMock

BalanceResponseGenerator balanceResponseGenerator = spy(new BalanceResponseGenerator()); 
when(balanceResponseGenerator, "getBalance",client.getParent(), request.getTerminal().getRetailPoint().getRetailNetwork(), result).thenReturn(new Balance()); 

Но реальный метод вызывается, почему это так? что не так? Я видел несколько примеров, и все они не работают для меня. Объясните пожалуйста!

+0

ли вы положили @PrepareForTest (BalanceResponseGenerator.class) над вашим TestClass? –

+0

Да, конечно, я сделал это / – Anatoly

ответ

0

Я думаю, проблема в том, что ваш вызов вызывается на Mockito.when (..). PowerMockito.when (..)

Правильные примеры приведен в documentation

@RunWith(PowerMockRunner.class) 
// We prepare PartialMockClass for test because it's final or we need to mock private or static methods 
@PrepareForTest(PartialMockClass.class) 
public class YourTestCase { 
    @Test 
    public void privatePartialMockingWithPowerMock() {   
     PartialMockClass classUnderTest = PowerMockito.spy(new PartialMockClass()); 

     // use PowerMockito to set up your expectation 
     PowerMockito.doReturn(value).when(classUnderTest, "methodToMock", "parameter1"); 

     // execute your test 
     classUnderTest.execute(); 

     // Use PowerMockito.verify() to verify result 
     PowerMockito.verifyPrivate(classUnderTest, times(2)).invoke("methodToMock", "parameter1"); 
    } 
} 
Смежные вопросы