В нашей базе кода есть класс LocationService
, который в основном делает две вещи: делает HTTP-вызовы для поиска «Locations» и выполняет большую работу для отображения информации, возвращающейся в пригодный для использования формат. По разным причинам, в первую очередь, SRP, мы хотели бы разделить этот класс на два класса: LocationLookupService
и LocationFactoryService
. Мы сделали это, и теперь LocationLookupService
выполнит свою работу HTTP и затем вызовет сервис Factory. С точки зрения src/main
, это, кажется, работает нормально. Тем не менее, модульные тесты для службы Lookup не удаются, потому что Фабрика не подвергается насмешкам - и я не хочу, чтобы это было. Я хочу, чтобы служба «Уточняющий запрос» вызывала фактическую фабрику без необходимости постоянно полагаться на макеты типа doCallRealMethod
(которые не рекомендуются).
Как правильно подключить фактический компонент Service Factory к компоненту Lookup во время тестирования? Я пробовал различные комбинации @Autowired, вызова конструктора и т. Д.
@Autowired private LocationFactoryService locationFactoryService;
@InjectMocks private LocationLookupServiceImpl locationService;