2017-10-20 6 views
0

Existe-t-il un moyen de tester uniquement un champ particulier dans une réponse qui correspond au texte donné ou non lors de l'écriture d'un contrat en utilisant spring-cloud-contract?vérification partcular déposé dans une réponse à la création de contacts de nuage de printemps

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

Contract.make { 

request { 
    method 'GET' 
    url value(consumer(regex('/app/emp/employee/[0-9]{3}')), producer('/app/emp/employee/151')) 
} 

response { 
    status 200 
    body([ 
      subjectsList: null, 
      errorResponse: null, 
      status: 'success', 
      employeeList: null, 
      Employee: [ 
       EmployeeId: 151, 
       firstName: 'xxx', 
       lastName: 'xxx', 
       middleName: 'xxx', 
       dateOfBirth: 01012001, 
       status: 'inbound', 
       cin: '345', 
       ssn: null, 
       EmployeeType: 'HoH', 
       preferredLanguage: 'french', 
       preferredContactMethod: null, 
       createdBy: null, 
       creadtedOn: null, 
       updatedBy: null, 
       updatedOn: null, 
       transactionId: null 
      ], 
      paginated: null 
    ]) 
    headers { 
     header('Content-Type': value(
       producer(regex('application/json.*')), 
       Employee('application/json') 
     )) 
    } 
} 

}

Au lieu d'écrire une réponse complète, est-il un moyen de vérifier seul attribut particulier présent dans la réponse par ex: langue = « français »

Merci à l'avance, votre aide est très apprécié.

Répondre

0

Bien sûr, supprimez simplement tous les autres champs. Tout ce que vous mettez dans le corps sera affirmé. BTW ce que vous faites avec le contrat ressemble à un schéma. Si un champ est nul cela veut dire qu'il doit être là et il doit être nul ou plutôt c'est facultatif?

Si vous voulez faire une affirmation personnalisée de la part du corps/entier vous pouvez utiliser cette http://cloud.spring.io/spring-cloud-static/Dalston.SR4/multi/multi__contract_dsl.html#_dynamic_properties_in_matchers_sections et passer tout élément jsonpath d'affirmation personnalisée

BTW pour la réponse que vous pouvez écrire headers { contentType(applicationJson()) }