Означает ли это что-то не так, когда у меня слишком много Mockito when (). ThenReturn () для имитации случая? - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь провести модульное тестирование с использованием Mockito для имитации случая.В классе тестирования у нас есть только один публичный метод.Таким образом, чтобы смоделировать различные случаи, я должен высмеивать множество деталей данных.Пожалуйста, смотрите ниже:

when(config.booleanValue(param1)).thenReturn(true);
        when(config.doubleValue(param2).thenReturn(9999.0);
        when(myCalendar.getAppointmentNumber()).thenReturn(3);
        when(location1.getLatitude()).thenReturn(90.0);
        when(location2.getLongitude()).thenReturn(90.0);
        when(location1.getLowerBoundary()).thenReturn(12.0);
        when(address1.getId()).thenReturn(1);
        when(address1.popularity()).thenReturn(0.6);
        when(people.getLocation(any(LocalDate.class))).thenReturn(location1);
        when(people.getAddresses(any(LocalDate.class))).thenReturn(Collections.singletonList(address1));
        when(location2.getLatitude()).thenReturn(90.3);
        when(location2.getLongitude()).thenReturn(90.3);
        when(location2.getId()).thenReturn(1);
        when(customer.getLocation(any(LocalDate.class))).thenReturn(location2);
        when(myCalendar.getPrevAppointment()).thenReturn(appointment1);
        when(myCalendar.getNextAppointment()).thenReturn(appointment2);
        when(appointment1.to(appointment2)).thenReturn(15.0);
        when(appointment2.to(any(Location.class))).thenReturn(9.0);

Использование Mockito, как это, кажется мне чем-то не так.Или я слишком много думаю.Пожалуйста, читайте мне лекции.Заранее спасибо.

1 Ответ

0 голосов
/ 08 декабря 2018

У меня недавно была похожая проблема.Мне пришлось протестировать функцию, которая выполняла другую функцию для каждой ячейки в 2-й карте / изображении.Функция тестирования стала действительно сложной и большой.В конце я разделил класс на 2 класса.Один для итерации и один для расчета на ячейку.Тогда было гораздо проще тестировать по отдельности.

Можете ли вы разделить свой класс на более простые классы?

...