소비자 측 계약을 확인할 때 시나리오 (일명 상태)를 사용하려고합니다. 나는 "newScenarioState"필드는 다음과 같이 추가 된 것을 볼 수 wiremock의 JSON 파일의 결과봄 구름 계약 설정 상태
my_contracts_dir\
scenario1\
1_login.groovy
2_showCart.groovy
3_logout.groovy
:이 문서에서 말했다처럼 시나리오는 그루비 스크립트에 대한 번호 접두사를 사용하여 봄 구름 계약에 정의되어
{
"uuid" : "34a829d1-adf4-41e4-b7d9-6ee66d7de8bc",
"request" : {
"url" : "/foo/demo",
"method" : "GET"
},
"response" : {
"status" : 200,
"body" : "[{\"model\":{\"address\":\"Address\",\"name\":\"String\"}}]",
"headers" : {
"Content-Type" : "application/json"
}
},
"scenarioName" : "Scenario_contracts",
"requiredScenarioState" : "Step2",
"newScenarioState" : "Step3"
}
이 문제 는 어떻게 소비자 통합 테스트를 작성할 때이 상태 사용할 수 있습니까? 찌르기 스위치가 "Step3"상태로 전환되기를 원한다고 가정 해 봅시다. 소비자 통합 테스트에서 어떻게 할 수 있습니까?
추가 정보 : 소비자 통합 테스트 (Junit 테스트)에서 @AutoConfigureStubRunner 대신 StubRunnerRule을 사용합니다. 따라서이 규칙을 통해 스텁에 대한 상태를 설정하기 위해 일부 API를 사용할 수 있습니다. 하지만 아무것도 찾지 못했습니다.
감사합니다. Marcin. 네, 인터넷에서 여러 회담을 보면서 스테이트 풀 테스트에 관한 당신의 요지를 얻었습니다. 하지만 제작자가 동일한 요청에 대해 서로 다른 응답을 반환 할 때 소비자 서비스가 어떻게 반응하는지 테스트해야합니다. 소비자 서비스가 장바구니라고 가정 해 보겠습니다. 장바구니가 비었을 때와 그 안에 물건이있을 때 소비자 테스트를하고 싶습니다. 이 사건에 대해 당신은 무엇을 권할 수 있습니까? 지원해 주셔서 감사합니다. – Dmitry
괜찮습니다! 나는 단계들을 분리하고 요청 응답 통신을 개별적으로 테스트 할 것이다. 접촉 테스트는 기능을 복제하지 않아야한다는 것을 기억하십시오. 실제로 제대로 의사 소통 할 수 있는지 여부를 테스트하기를 원합니다. 따라서 인프라 로직에서 비즈니스 로직을 분리 한 후 나는 다른 HTTP 통신을 스텁 아웃하여 전자를 테스트하고 전자는 세 가지 단계를 개별적으로 검사하여 테스트합니다. 어떤 의미가 있습니까? :) –
또한 본문 또는 헤더별로 요청을 구분할 수 있습니다. 당신은 사람의 이름이 "사기"라면 그 사람을 "사기"상태로 바꿀 것이라고 생각할 수 있다고 발명 할 수 있습니다. 프로세스를 제어 할 수있는 방법입니다. –