Я использую mockito для своих тестов, и поэтому я хочу, чтобы макет выполнял инкремент на его AtomicIntegerField, вот упрощенный код.Mockito, как использовать реальные методы и получать значения
public class MockTest {
private AtomicInteger ai = new AtomicInteger(0);
public int getAi(){
return ai.get();
}
public void increment() {
ai.getAndIncrement();
}
public static void main(String[] args) {
MockTest mt = Mockito.mock(MockTest.class, Mockito.RETURNS_DEEP_STUBS);
Mockito.when(mt.getAi()).thenCallRealMethod();
Mockito.doCallRealMethod().when(mt).increment();
System.out.println(mt.getAi());
mt.increment();
System.out.println(mt.getAi());
}
}
Я попытался Thie CallRealMethod, но я получил NullPointerException, когда выполняется прибудете. Я также читал об использовании объекта «Ответ», но не знаю, что я не уверен в аргументах, которые используют.
Возможно, вам нужен шпион, а не макет. – chrylis
В таком примере вам не кажется, что вам даже нужен макет, вы должны проверить реальный объект! –