我想寫一個junit來測試我的代碼中使用java監視器。有沒有一種方法可以斷言wait()已經在特定的對象上被調用過。我嘗試了obj和mockito間諜的不同組合來部分存根,但它要麼引發IllegalMonitorStateException,要麼只是繼續等待而不是捕獲方法調用。Junit - 測試調用obj.wait()
public void waitTest(){
RWLock lock= new RWLock();
RWLock lockSpy = spy(lock);
lock.lockRead();
synchronized (lockSpy) {
verify(lockSpy).wait();
}
}
class RWLock{
public synchronized void lockRead(){
wait();
}
}
我真的很感謝任何幫助,我可以得到這一點。謝謝!
向我們展示mockito代碼。 –
我在這裏使用mockito間諜: RWLock lockSpy = spy(lock); //創建一個間諜 和 verify(lockSpy).wait(); //查看 – mindreader