在使用spring-cloud-contract框架编写契约时,是否有办法仅测试响应中的特定字段是否与给定文本匹配。
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')
))
}
}}
除了编写完整的响应之外,有没有办法只检查ex: language =‘法语’响应中存在的特定属性
提前感谢,非常感谢您的帮助。
发布于 2017-10-20 19:16:09
当然,只要删除所有其他字段即可。您放在主体中的任何内容都将被断言。顺便说一句,您对契约所做的事情看起来像是一个模式。如果一个字段为空,这意味着它必须在那里,它必须为空,或者更确切地说,它是可选的?
如果您想在/ and body部分执行任何自定义断言,您可以使用此http://cloud.spring.io/spring-cloud-static/Dalston.SR4/multi/multi__contract_dsl.html#_dynamic_properties_in_matchers_sections并传递自定义断言的任何jsonpath元素
顺便说一下,对于响应,您可以编写headers { contentType(applicationJson()) }
https://stackoverflow.com/questions/46847850
复制相似问题