StackOverflowError при насмешке статического метода с помощью Mockito и JUnitJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 StackOverflowError при насмешке статического метода с помощью Mockito и JUnit

Сообщение Anonymous »

Я практикуюсь в JUnit с Mockito и пытаюсь протестировать простой статический метод
class LessSimpleCalculatorImp implements LessSimpleCalculator {
@Override
public int power(int x, int y) {
return (int)Math.pow(x, y); // Math.pow(3, 2)).thenReturn(9.0);
int result = lessSimpleCalculator.power(3, 2);
assertEquals(9, result);
mockedMath.verify(() -> Math.pow(3, 2), times(1));
}
}
}

И это выдает мне StackOverflowError, когда я выполняю чистый тест mvn:
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main"

ChatGPT говорит, что это происходит потому, что имитируемый класс вызывает Math.pow, который перехватывается имитируемым классом, который снова вызывает реальный класс. Как это исправить?
Кроме того, я использую Maven для управления зависимостями:

org.mockito
mockito-junit-jupiter
5.13.0
test


junit
junit
4.13.2
test



Подробнее здесь: https://stackoverflow.com/questions/790 ... -and-junit
Ответить

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

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

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

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

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