2016-10-06 8 views
1

우리는 봄 부팅 프로젝트에서 일반 Spring AMQP을 사용하고 있습니다.Spring Cloud 계약 및 일반 Spring AMQP

메시지 소비자가 실제 메시지를 테스트하고 정적 테스트 메시지를 테스트하지 않도록하고 싶습니다.

따라서 제작자는 테스트 단계에서 메시지 조각을 생성 할 수 있습니다.이 조각은 소비자 테스트에서 최신 메시지 버전을 테스트하고 생산자의 변경으로 인해 소비자가 해킹되는지 확인할 수 있습니다.

정확히 Spring Cloud Contract처럼 보입니다. 그렇다면 스프링 클라우드 계약을 스프링 amqp와 통합하는 방법이 있습니까? 방향에 대한 어떤 힌트라도 높게 평가 될 것입니다.

답변

4

사실 우리는 기본적으로 지원하지 않지만 직접 설정할 수 있습니다. 자동 생성 된 테스트에서 우리는 메시지를 수신하고 보내는 인터페이스를 사용하고 있으므로 spring-amqp를 사용하는 클래스를 구현할 수 있습니다. 소비자 측 (스텁 주자)도 마찬가지입니다. 생성자와 사용자 모두에 대해 org.springframework.cloud.contract.verifier.messaging.MessageVerifier 유형의 bean을 구현하고 등록하는 것이 필요합니다. 이것은 자동 생성 된 테스트에서 우리가 수행하는 작업이 작동해야합니다. @Inject MessageVerifier 그래서 자신 만의 bean을 등록하면 작동 할 것입니다.

UPDATE :로 @Mathias 그것을 언급했다 는 AMQP 지원 봄 클라우드 계약 https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp

+0

감사 마르신 이미이 - 당신의 힌트와 생성 된 테스트 중 하나보고 그것이 나를 위해 클릭했다 - 내가 생각 이제 통합을 구현할 수 있습니다 - 다소 작은 것 같습니다. –

+0

굉장! 작동하는지 확인해 보겠습니다. 답변으로 표시 할 수 있습니까? –

+1

그 동안, 나는 spring-cloud-contract에 spring-amqp 통합을 추가했다. 이제는 즉시 사용할 수있는 https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp가 지원됩니다. –

관련 문제