Zombe de um cliente Eureka Feign por cancelar o teste
Estou usando o eureka do Spring Cloud e fingindo se comunicar entre alguns serviços (digamos A e B). Agora, gostaria de unittest minha camada de serviço de um único serviço (A). O problema é que este serviço (A) está usando um cliente falso para solicitar algumas informações do outro serviço (B).
A execução das unittests sem nenhuma configuração especial gera a seguinte exceção:java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: service-b
=> mas eu não quero que nenhum servidor seja executado.
Minha pergunta é: Existe uma maneira de zombar do cliente fingido, para poder unittest meu serviço (A) sem executar uma instância e serviço eureka (B)?
Edit: Acabei criando um esboço para o cliente fingido. O esboço é marcado como um componente primário para forçar a mola a instanciar o esboço nos meus testes.
Esta é a solução que eu vim com.
//the feign client
@FeignClient("user")
public interface UserClient {
UserEntity getUser();
}
//the implementation i use for the tests
@Component
@Primary //mark as primary implementation
public class UserClientTestImpl implements UserClient {
@Override public UserEntity getUser() {
return someKindOfUser;
}
}