В настоящее время я работаю над сервисами модульного тестирования с mockito и Junit 5. Вот проблемная c часть моего ServiceTest. java:
...
archiveMeasure=Mockito.mock(ArchiveMeasure.class);
previsionHMeasure=Mockito.mock(PrevisionHMeasure.class);
ruleOccupationRate=Mockito.mock(Rule.class);
calculateIndicatorService=Mockito.mock(CalculateIndicatorService.class);
@Test
public void DefiniteSectionThatBecomesDark_returnTrue() {
//Arrange
ruleOccupationRate.setThreshold(25);
archiveMeasure.setOccupationRate(30);
previsionHMeasure.setOccupationRate(30);
boolean expected = true;
//Act
boolean found = definiteSectionStateCongestionService.DefiniteSectionThatBecomesDark(archiveMeasure,previsionHMeasure,ruleOccupationRate);
//Assert
assertEquals(found,expected);
}
И метод тестирования для проверки:
public boolean DefiniteSectionThatBecomesBright ( ArchiveMeasure archiveMeasure,
PrevisionHMeasure previsionHMeasure,
Rule ruleOccupationRate) {
if ( calculateIndicatorsService.calculateActualCongestion(ruleOccupationRate.getThreshold(), archiveMeasure.getOccupationRate())==true ||
previsionHMeasure.getOccupationRate() < ruleOccupationRate.getThreshold()) {
return true;
}
else {
return false;
}
Моя проблема в том, что я получаю исключение NullPointerException когда я запускаю тест, я полагаю, что в ruleOccupationRate.getThreshold (). Я думаю, что я могу преодолеть эту трудность, используя множество когда (). TheReturn () для каждого получателя, участвующего в Сервисе. Итак, мой вопрос: почему сеттеры, которые я использовал в части // Arrange моего теста, не работают? Можно ли установить свойства для фиктивного объекта, чтобы избежать насмешек при каждом вызове геттеров? Если так, как я могу продолжить?