Этот метод выглядит следующим образом:
Код: Выделить всё
public int test(){
try {
var test = TimeUnit.MILLISECONDS;
test.sleep(500L);
} catch (Exception e) {
return 1;
}
return 0;
}
Я пробовал много вещей, например:
Код: Выделить всё
try(var staticMock = Mockito.mockStatic(TimeUnit.class)) {
var mock = Mockito.mock(TimeUnit.class);
staticMock.when(() -> mock.sleep(anyLong())).thenThrow(new InterruptedException());
}
Код: Выделить всё
try(var staticMock = Mockito.mockStatic(TimeUnit.class)) {
var mock = Mockito.mock(TimeUnit.class);
doThrow(InterruptedException.class).when(mock).sleep(anyLong());
staticMock.when(TimeUnit::values).thenReturn(new TimeUnit[]{mock});
}
Я хочу кое-что указать: Я не хочу создавать специальный класс, содержащий TimeUnit, только для тестирования этого случая. Я лично считаю, что это плохая практика, поскольку она делает код менее читабельным для тех, кто не знаком с проектом. Кроме того, понимание того, как работать с этим случаем, поможет мне лучше понять Mockito (это также работает, если это невозможно).
Есть ли способ сделать это только с помощью Mockito?
Подробнее здесь: https://stackoverflow.com/questions/790 ... th-mockito