我想写一个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