0
我正在使用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());
}
}
我試過了CallRealMethod,但是我得到了NullPointerException,執行獲取時。我還閱讀了關於使用Answer對象的問題,但是對於我所使用的爭論並不確定。
你可能想要間諜而不是模擬。 – chrylis
在這樣的例子中,你似乎甚至不需要模擬,你應該測試真實的對象! –