Как я могу проверить часть кода "catch" в попытке-catch, используя Mockito, когда "try" - это "Thread.Sleep()"? ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу проверить часть кода "catch" в попытке-catch, используя Mockito, когда "try" - это "Thread.Sleep()"?

Сообщение Anonymous »

Я использую Mockito для написания теста, но мне очень сложно протестировать этот конкретный фрагмент кода:

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

public void myMethod() {
try {
Thread.sleep(400);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
Многие примеры в Интернете используют пример принудительного использования всего, что находится при попытке выдать ошибку, но все, на что я смотрел, кричит: «Не издевайтесь над потоком»
Есть ли способ заставить код прерваться с помощью Thread.interrupt() или аналогичного?
Я начал пытаться и используйте шпиона:

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

Thread threadSpy = spy(new Thread());
threadSpy.interrupt();
assertThatExceptionOfType(RuntimeException.class);
но я вижу, что это на самом деле не приводит к прерыванию потока в myMethod, поэтому на самом деле этот фрагмент кода не тестируется.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ito-when-t

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