Могу ли я установить какой-либо атрибут для Mockito.mock (Class.class)? - PullRequest
0 голосов
/ 12 февраля 2020

В настоящее время я работаю над сервисами модульного тестирования с 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 моего теста, не работают? Можно ли установить свойства для фиктивного объекта, чтобы избежать насмешек при каждом вызове геттеров? Если так, как я могу продолжить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...