Стратегия для модульного тестирования Spring Cloud Service

Учитывая следующую настройку Spring Cloud: Adata-service с доступом к базе данных,eureka-service обрабатывать реестр услуг и обнаружение и третий сервисbusiness-service который будет одним из различных сервисов, которые инкапсулируют бизнес-кейсы.

Модульное тестированиеdata-service нет проблем, я просто отключаю эврика через

eureka.client.enabled=false

и использовать базу данных в памяти для моих тестов.

Чтобы получить доступ кdata-service отbusiness-serviceЯ использую@FeignClient("data-service") аннотированный интерфейс с именемDataClient который@Autowired где необходимо. Служба обнаружена Eureka, если оба работают. Это прекрасно работает для производственной установки со всеми работающими сервисами.

Но теперь я хочу провести модульное тестирование некоторых функций моегоbusiness-service, Не было бы проблемой запустить тестовый сервис с

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
@SpringApplicationConfiguration(classes = Application.class)

как я делаю вdata-service, Проблема в том, что Эврика-зависимое открытие моегоFeignClient... Так что мой тестовый класс вылетает, потому что автопроводка мояDataClient-экземпляр не работает.

Могу ли я сказать Spring, чтобы использовать поддельный экземплярDataClient только для моих тестов? Или это единственный способ заставить мои тесты запускать доступный, работающий экземплярdata-service а мой эврика сервер?

Ответы на вопрос(3)

Ваш ответ на вопрос