Невозможно проверить сложный JSON с помощью заводного контракта - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь написать Groovy-контракт, который подтверждает мой JSON, который содержит список, как показано ниже:

{
  "id": "{id_val}",
  "name": "{name_val}",
  "age": "{age_val}",
  "salary": "{salary_val}",
  "designation": "{programmer_val}",
  "addressList": [{
   "street": "Park Avn",
  "city": "West chester",
  "zipCode": "{zip_val}"
 },{
  "street": "Park Avn",
 "city": "West chester",
 "zipCode": "{zip_val}"
 }],
 "phoneNumbers": [
  "123456",
  "987654"
],
"personalInformation": {
 "gender": "Male",
 "maritialstatus": "married"
 }
}

И соответствующий Groovy, как показано ниже:

package contracts.beer.rest
import org.springframework.cloud.contract.spec.Contract

Contract.make{

description("""
Validating A CWP MO For New Customer
""")

request{

method 'POST'
url    '/ValidateMO'
body(file("cwp_mo.json"))
bodyMatchers {
    jsonPath('$.id',byRegex("[0-9]{2}"))
    jsonPath('$.name',byRegex('[A-Za-z]+'))
    jsonPath('$.age',byRegex('[2-9][0-9]'))
    jsonPath('$.salary',byRegex('[1-9][0-9]{5}'))
    jsonPath('$.designation',byRegex('[A-Za-z]+'))
    jsonPath("\$.['addressList'][*].['zipCode']", byRegex('[0-9]{5}'))

}
headers {
        contentType(applicationJson())
     }
  }
 response{
 status 200
   body("""
     {
   "status":"OK"
   }
   """)
   headers{
   contentType(applicationJson())
   }
  }
 }

После запуска моегоТестовый пример не проверяет список адресов должным образом, даже если я поставил неправильное значение в 'почтовый индекс.Кто-нибудь может сказать мне, где проблема в моем отличном?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...