Интересный вопрос. Немного сложно протестировать, потому что подделка определенных методов java.lang.Thread
может мешать JRE или самому JMockit, а также потому, что JMockit (в настоящее время) не может динамически имитировать собственные методы, такие как sleep
. Тем не менее, это все еще можно сделать:
public void testResetInterruptStatusWhenInterrupted() throws Exception
{
new Expectations() {
@Mocked({"sleep", "interrupt"}) final Thread unused = null;
{
Thread.sleep(anyLong); result = new InterruptedException();
onInstance(Thread.currentThread()).interrupt();
}
};
new Sleeper.sleep();
}