34장. mock
프로듀서만 지원됩니다.
분산 및 비동기 처리 테스트는 크게 어렵습니다. Mock 및Test 및 Dataset 엔드포인트는 Camel 테스트 프레임워크와 함께 강력한 Integration Patterns 와 Camel의 다양한 구성 요소와 함께 장치 및 통합 테스트를 단순화합니다.
Mock 구성 요소는 테스트를 시작하기 전에 모든 Mock 끝점에서 선언적 기대치를 만들 수 있다는 점에서 jMock 과 유사한 강력한 선언적 테스트 메커니즘을 제공합니다. 그러면 테스트가 실행되어 일반적으로 하나 이상의 엔드포인트에 메시지를 실행하며 마지막으로 테스트 케이스에서 예상을 어설션하여 시스템이 예상대로 작동하는지 확인할 수 있습니다.
이렇게 하면 다음과 같은 다양한 테스트를 수행할 수 있습니다.
- 각 끝점에 대해 올바른 메시지 수를 수신합니다.
- 적절한 순서로 페이로드가 수신됩니다.
- 메시지가 순서대로 끝점에 도착합니다. 일부 표현식을 사용하여 순서 테스트 함수를 생성합니다.
- 메시지는 특정 헤더에 특정 값이 있거나, 메시지의 평가와 같은 일부 서술자와 같은 특정 종류의 Predicate와 일치합니다. https://access.redhat.com/documentation/en-us/red_hat_integration/2023.q1/html-single/camel_spring_boot_reference_3.14/index#csb-camel-xpath-language-starter
Test 끝점은 Mock 끝점 이지만 두 번째 끝점을 사용하여 예상 메시지 본문 목록을 제공하고 Mock 끝점 어설션을 자동으로 설정합니다. 즉, 파일 또는 데이터베이스 의 일부 샘플 메시지에서 어설션을 자동으로 설정하는 Mock 끝점입니다.
모크 끝점은 메모리에서 수신되는 교환을 무기한 유지합니다.
Mock은 테스트를 위해 설계되었습니다. 경로에 Mock 끝점을 추가하면 명시적으로 재설정하거나 JVM이 다시 시작될 때까지 끝점으로 전송된 각 Exchange가 메모리에 저장됩니다. 대량 및/또는 큰 메시지를 보내는 경우 과도한 메모리 사용이 발생할 수 있습니다. 배포 가능한 경로를 인라인으로 테스트하는 것이 목표인 경우 Mock 엔드포인트를 직접 경로에 추가하는 대신 NotifyBuilder 또는 AdviceWith를 테스트에서 사용하는 것이 좋습니다. 새로운 옵션은 두 가지이며, Mock 끝점이 메모리에 유지하는 메시지 수를 제한하는 데 사용할 수 있는 retainLast와 retainLast가 있습니다.
34.1. URI 형식
mock:someName[?options]
여기서 someName
은 끝점을 고유하게 식별하는 문자열일 수 있습니다.