Подсчет косвенных вызовов методов Mockito

У меня проблемы с подсчетом вызовов методов в Mockito. Проблема в том, что метод, вызовы которого я хочу подсчитать, вызывается в тестовом классе косвенно другим методом. Вот код:

public class ClassForTest {
    private Integer value;

    public void doSmth() {
        prepareValue("First call");
        prepareValue("Second call");
        prepareValue("Third call");
        System.out.println(value);
    }

    protected void prepareValue(String msg) {
        System.out.println("This is message: " + msg);
        value++;
    }
}

И тестовый класс:

public class ClassForTestTest extends TestCase {
    @Test
    public void testDoSmth() {
        ClassForTest testMock = mock(ClassForTest.class);
        doNothing().when(testMock).prepareValue(anyString());
        testMock.doSmth();
        verify(testMock, times(3)).prepareValue(anyString());
    }
}

С таким исключением:

Wanted but not invoked:
classForTest.prepareValue(<any>);
-> at org.testing.ClassForTestTest.testDoSmth(ClassForTestTest.java:24)

However, there were other interactions with this mock:
-> at org.testing.ClassForTestTest.testDoSmth(ClassForTestTest.java:21)

Любые идеи, пожалуйста. Заранее спасибо!

7
задан catdog 20 October 2011 в 00:00
поделиться