Hello! I started to integrate Spring Cloud Contract into existing project.

No problems on producer side. Base test class annotated with @WebMvcTest, so only Web Layer getting configured and has same state as for production deployment. Services mocked, Web works, tests passed, stubs published

Issue comes on consumer side. We are using Feign as client. So Preferable solution is to create test, inject FeignClient with same configuration, as for production deployment and perform http requests using using Feign abstraction.

Example from documentation:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.NONE)
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:6565"},
        stubsMode = StubRunnerProperties.StubsMode.LOCAL)
public class LoanApplicationServiceTests

This will work, but in services with complex configuration it is difficult to create such configuration (@SpringBootTest). All properties must be set, production only beans must be mocked, etc. More over - there is no need for Feign tests to create all service, configuration and controller beans.

So existent of special annotation for Feign Client Layer Test (@FeignTest) will helps a lot and sounds reasonable. But to create this annotation deep knowledge of all Feign related spring auto configurations required (web converters, ribbon, eureka, jackson, etc.)

It would be great, if you will able to implement this annotation.

Thanks in advance, Yesman Maxim.

Comment From: wilkinsona

Thanks for the suggestion, but as Feign support isn't part of Spring Boot a @FeignTest annotation wouldn't belong here. You may want to suggest this to the https://github.com/spring-cloud/spring-cloud-openfeign team.

Comment From: yesmanmx

Thanks, @wilkinsona !