Estrategia para la prueba unitaria de un servicio Spring Cloud

Dada la siguiente configuración de Spring Cloud: Adata-service con acceso a una base de datos, uneureka-service para manejar el registro y descubrimiento de servicios y un tercer serviciobusiness-service que será uno de varios servicios que encapsulan casos de negocios.

Unidad de prueba dedata-service no hay problema, solo apago eureka a través de

eureka.client.enabled=false

y usar una base de datos en memoria para mis pruebas.

Para acceder aldata-service debusiness-serviceEstoy usando un@FeignClient("data-service") interfaz anotada llamadaDataClient cual es@Autowired donde sea necesario Eureka descubre el servicio si ambos se están ejecutando. Esto funciona bien para una configuración similar a la producción con todos los servicios en ejecución.

Pero ahora quiero probar algunas características de mibusiness-service. No sería un problema iniciar un servicio de prueba con

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

como estoy haciendo endata-service. El problema es el descubrimiento dependiente de Eureka de miFeignClient... Entonces mi clase de prueba falla, porque el cableado automático de miDataClient-La instancia no funciona.

¿Puedo decirle a Spring que use una instancia falsa deDataClient solo para mis pruebas? O es la única forma de hacer que mis pruebas ejecuten una instancia accesible y en ejecución dedata-service y mi servidor Eureka?

Respuestas a la pregunta(3)

Su respuesta a la pregunta