Как мне смоделировать конструктор с параметрами с помощью MockitoJunitRunner
@Component
@Slf4j
public class InsurancePeriodCreator {
//declare variables
public InsurancePeriodCreator(InsurancePeriod srcInsurancePeriod, PensionCase pensionCase, PensionHandlerParty pensionHandlerParty) {
//some code
}
public InsurancePeriod createNewIP() {
// some code
}
}
Я пытаюсь написать тесты для этого метода и пытаюсь смоделировать деталь в **
@Component
@Slf4j
@RequiredArgsConstructor
class InsurancePeriodQueryHelper {
@Transactional
private void createNewInsurancePeriods(PensionCase pensionCase, PensionHandlerParty pensionHandlerParty, List<InsurancePeriod> insurancePeriodList) {
List<InsurancePeriod> newInsurancePeriods = new ArrayList<>();
insurancePeriodList
.forEach(insurancePeriod ->
newInsurancePeriods.add(** new InsurancePeriodCreator(insurancePeriod, pensionCase, pensionHandlerParty).createNewIP() ** ));
insurancePeriodRepository.saveAll(newInsurancePeriods);
}
}
Я попробовал это, основываясь на другой статье в stackoverflow ......
**
InsurancePeriodCreator insurancePeriodCreator = Mockito.spy(new InsurancePeriodCreator(insurancePeriod, pensionCase, pensionHandlerParty));
Mockito.when(insurancePeriodCreator.createNewIP()).thenReturn(insurancePeriod)
**
Mockito.when(insurancePeriodRepository.saveAll(ArgumentMatchers.anyList())).thenReturn(insurancePeriods);
createPensionDecision.createPensionPeriod(pensionCase, pensionHandlerParty);;
, но когда я пытаюсь запустить этот тест, он пытается выполнить метод createNewIP () и выдает и исключение
java.lang.NullPointerException в fi.mandatumlife.epeli.ms.yk.rules.YkService.personAge (YkService.java:200) в fi.mandatumlife.epeli.ms.pensionapplicationservice.core.service.formpensiondecision. InsurancePeriodCreator.createNewIP (InsurancePeriodCreator.java:44)