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

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