Издевательство TimeUnit.MILLISCONDS.sleep() с помощью MockitoJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Издевательство TimeUnit.MILLISCONDS.sleep() с помощью Mockito

Сообщение Anonymous »

Я хочу протестировать метод на Java 17 (springboot 3.x, Mockito 5.x), и в настоящее время я использую Mockito.
Этот метод выглядит следующим образом:

Код: Выделить всё

public int test(){
try {
var test = TimeUnit.MILLISECONDS;
test.sleep(500L);

} catch (Exception e) {
return 1;
}
return 0;

}
Я хочу, чтобы мой TimeUnit.MILLISCONDS.sleep(500L) выдавал InterruptedException и, таким образом, метод возвращал 1.
Я пробовал много вещей, например:

Код: Выделить всё

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});
}
Но это тоже не сработает -> каждый раз, когда метод возвращает 0 или возникает ошибка макета.
Я хочу кое-что указать: Я не хочу создавать специальный класс, содержащий TimeUnit, только для тестирования этого случая. Я лично считаю, что это плохая практика, поскольку она делает код менее читабельным для тех, кто не знаком с проектом. Кроме того, понимание того, как работать с этим случаем, поможет мне лучше понять Mockito (это также работает, если это невозможно).
Есть ли способ сделать это только с помощью Mockito?

Подробнее здесь: https://stackoverflow.com/questions/790 ... th-mockito
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Издевательство TimeUnit.MILLISCONDS.sleep() с помощью Mockito
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Любая разница между kernel32.dll Sleep и Thread.Sleep()
    Anonymous » » в форуме C#
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Android 13 планшет предотвращает WebSocket в WebView Densonce на экране Sleep Sleep
    Anonymous » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Издевательство над вложенными методами с помощью Mockito
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Издевательство над статикой с помощью Mockito
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»