2016-06-10 5 views
0

Я тестирую метод, который использует API Spring, и мне нужно его протестировать. Есть ли способ проверить его с помощью Mockito?Mockito in JUnit

Метод тестируемой:

@Override 
protected List<MonitoringWidget> handleMonitor() { 
    IConcurrentMonitoringWidgetAggregator a = (IConcurrentMonitoringWidgetAggregator)AppContext.getBean(Constants.SPRING_BEAN_MONITOR_AGGREGATOR); 
    return a.aggregate(); 
} 
+0

Вы не можете издеваться над статикой с mockito, если это вопрос –

+2

Весь смысл Spring - использовать инъекцию зависимостей, чтобы иметь возможность вводить макеты в тесты. Требование к компоненту AppContext - это именно то, что инъекция зависимости позволяет ** избегать **, потому что это делает код намного сложнее проверить. Используйте инъекцию зависимостей. –

+0

Итак, это значит, что у меня должен быть context.xml для моего теста, если я не использую PowerMockito. –

ответ

0

Вы должны вводить IConcurrentMonitoringWidgetAggregator в класс, который имеет этот метод. Таким образом, ваш тестовый пример может создать экземпляр испытуемого класса, переданный в макет IConcurrentMonitoringWidgetAggregator

Обратите внимание, что если aggregate() быстро и результат легко проверить, это может иметь смысл для вашего теста пройти в реальный экземпляр IConcurrentMonitoringWidgetAggregator (т. е. проверить результат вызова, а не взаимодействие).

Смежные вопросы