我使用Spring Cloud Contract框架进行REST服务集成测试和相关的客户端应用程序合同。它适用于对象JSON请求/响应,但是有机会检查简单的字符串。在某种程度上,响应布尔值的服务(响应体中是真还是假)?
groovy定义的一部分:
response {
status 200
headers {
header('Content-Type', 'application/json;charset=UTF-8')
}
body(
value(client('true'), server(regex("true|false")))
)
}
生成测试的相关部分:
String responseBody = response.getBody().asString();
null;
这是一个错误,不是吗?或者我应该在groovy定义中做些更好的事情?第一行给出了一个机会生成器理解我想要的东西,但第二行是彻底的。谢谢你的提示。
P.S。我知道只有字符串" true"才有不同意见。作为JSON响应的有效性(有些人这样说,其他人没有)请求,不要解决它,但只有真正的问题: - )
答案 0 :(得分:1)
此问题已修复https://github.com/spring-cloud/spring-cloud-contract/issues/443。随着新版本(Dalston.SR5和Edgware转发),这不再是一个问题。
答案 1 :(得分:0)
org.springframework.cloud.contract.spec.Contract.make { 请求{ 方法“获取” urlPath('url')
body([
'json-string'
])
headers {
header('Content-Type', 'application/json;charset=UTF-8')
}
}
response {
status 200
body( "\"true\"" )
} }
这对我有用。