我正在尝试在测试类中使用这个模拟:
@Mock
private IDPool idPool;
@Before
private void before() {
expect(idPool.getNextFree()).andReturn(TRACK_ID).anyTimes(); //line 63
}
当我运行它时,我得到 NPE:
java.lang.NullPointerException
at com.mycompany.IDPool.getNextFree(IDPool.java:68)
at com.mycompany.Test.before(Test.java:63)
看起来它试图运行生产代码而不是模拟?因为 NPE 是在 IDPool 类中抛出的:
public final Integer getNextFree() {
int nextFree;
synchronized (this.usedIDs) { //line 68
//...
}
}
我认为模拟不使用实际的实现?我可以模拟这个对象,这样它就不会出现吗?