Spring Cloud Contract - 如何测试简单的字符串响应?

时间:2017-08-28 10:19:26

标签: spring-cloud-contract

我使用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响应的有效性(有些人这样说,其他人没有)请求,不要解决它,但只有真正的问题: - )

2 个答案:

答案 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\"" )
} }

这对我有用。