package demo; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; //Increase hystrix timeout or else requests timeout on CI server @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = {"myexample.ribbon.listOfServers:example.com", "hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000"}) @DirtiesContext public class FeignClientWithServerListApplicationTests { @Autowired private ServiceRestClient client; @Test public void clientConnects() { assertTrue(client.hello().contains("<html")); } @Configuration @EnableAutoConfiguration @EnableFeignClients protected static class TestApplication { @Bean public FallbackRestClient fallbackRestClient() { return new FallbackRestClient(); } @Bean public FallbackClient fallback() { return new FallbackClient(); } public static void main(String[] args) { SpringApplication.run(FeignClientApplication.class, args); } } @FeignClient(value = "myexample", fallback = FallbackRestClient.class) public static interface ServiceRestClient { @RequestMapping(value="/", method=RequestMethod.GET) String hello(); } static class FallbackRestClient implements ServiceRestClient { @Override public String hello() { return "fallback"; } } }