mockit 模拟 TimeUnit.SECONDS.sleep 抛异常
时间: 2024-03-20 21:43:09 浏览: 324
在 Java 中,TimeUnit.SECONDS.sleep() 方法可以使当前线程休眠指定的秒数。如果我们要在测试中模拟这个方法抛出异常的情况,可以使用 Mockito 的 doThrow() 方法来实现。
下面是一个示例代码:
```
import org.junit.Test;
import org.mockito.Mockito;
import java.util.concurrent.TimeUnit;
public class SleepTest {
@Test(expected = InterruptedException.class)
public void testSleep() throws InterruptedException {
TimeUnit timeUnit = Mockito.mock(TimeUnit.class);
// 当调用 timeUnit.sleep() 方法时抛出 InterruptedException 异常
Mockito.doThrow(new InterruptedException()).when(timeUnit).sleep(Mockito.anyLong());
// 调用 timeUnit.sleep() 方法会抛出 InterruptedException 异常
timeUnit.sleep(1000);
}
}
```
在这个测试中,我们首先使用 Mockito.mock() 方法创建了一个 TimeUnit 的 mock 对象,然后使用 Mockito.doThrow() 方法来模拟 sleep() 方法抛出 InterruptedException 异常的情况。最后,我们调用 timeUnit.sleep() 方法,并且期望它抛出 InterruptedException 异常。这就完成了模拟 TimeUnit.SECONDS.sleep() 方法抛出异常的测试。
阅读全文