0
나는이 같은 계약을 체결 한 가정마다 배열 항목에 존재하는 비 비어 :는
org.springframework.cloud.contract.spec.Contract.make {
request {
method "GET"
url "/api/profiles"
headers {
header('Accept': 'application/json;charset=UTF-8')
header('Content-Type': 'application/json;charset=UTF-8')
}
}
response {
status 200
headers {
header('Content-Type': 'application/json;charset=UTF-8')
}
body(
value(
stub(
'''\
[
{
"profile": "profile1",
},
{
"profile": "profile2",
}
]
'''
),
test(
[
[
"profile" : regex(nonEmpty()),
]
]
)
)
)
}
"profile" : regex(nonEmpty())
의 시험 만 profile
와 적어도 하나 개의 배열 항목이 있는지 확인 속성은 비어 있습니다.
모든 항목이 비어 있지 않은지 확인하고 싶습니다. profile
. 이 비 비어하기 위해 모든 profile
필드를 확인하지만, 같은 필드가 실제로 존재하는지 여부를 확인하지 않습니다
jsonPath('$.[*].profile', byRegex(nonEmpty()))
:
나는 이미 사용 테스트 매처 (matcher)을 시도했다.모든 배열 항목에 profile
필드가 있고 각 필드가 공백이 아닌지 어떻게 테스트 할 수 있습니까?
감사합니다. 명확하게하기 위해, 기존의 matchers는 단일 항목을 테스트하기위한 용도로만 사용됩니까? –
나는 그것을 여기에서 철저히 기술한다고 생각한다 (http://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/single/spring-cloud.html#_dynamic_properties_in_the_matchers_sections). 당신이 json 경로로 전달하는 것은 무엇이든 주장합니다. 목록, 단일 입력,지도 등 –
죄송 합니다만 명확한 설명을 찾을 수 없습니다. 무엇보다 나는 지금 혼란 스럽다. 배열에 각 객체를 지정할 수 있다는 것이 내 기대였다. 원래의 대답은 프로그래밍 방식으로 어설 션함으로써 만 가능하다는 것을 나타냅니다. 그게 사실이야? –