Получение исключения в <init>при попытке подавить конструктор - PullRequest
0 голосов
/ 03 августа 2020

Попытка издеваться ниже:

//Class
final InformationSection infoSec = new InformationSection("123");

со следующим:

//Test
PowerMockito.suppress(MemberMatcher.constructorsDeclaredIn(InformationSection.class));
InformationSection infoSec = mock(InformationSection.class);
when(InformationSection.class).withArguments(Mockito.anyString()).thenReturn(infoSec);

Конструктор InformationSection, который я пытаюсь подавить, внутренне выполняет Integer.parseInt("123") для вызова другой конструктор того же класса с аргументом Integer, который выбрасывает NumberFormatException:

java.lang.NumberFormatException: null
at java.lang.parseInt(Integer.java:615)
InformationSection.<init>(InformationSection.java:40)

Итак, я запутался, если я подавляю конструктор, почему он все еще выполняет этот синтаксический анализ? Я имею в виду: Что означает в исключении Java? Это происходит до подавления конструктора? Если да, то как мы можем справиться с этим сценарием?

...