2

我正在使用 Spring Cloud Contract 框架进行 REST 服务集成测试和相关的客户端应用程序合同。它适用于对象 JSON 请求/响应,但有机会检查简单的字符串。特别是,响应布尔值的服务(响应正文中的真或假)?

常规定义的一部分:

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 定义中做得更好?第一行让生成器有机会理解我想要什么,但第二行完全没有了。感谢您的任何提示。

PS我知道只有字符串“真实”有效性作为JSON响应有不同的意见(有些人这么说,其他人不是)请不要解决它,但只有真正的问题:-)

4

2 回答 2

2

问题在这里得到了解决https://github.com/spring-cloud/spring-cloud-contract/issues/443。随着新版本(Dalston.SR5 和 Edgware forward)这不再是一个问题。

于 2017-10-24T09:56:31.740 回答
0

org.springframework.cloud.contract.spec.Contract.make { 请求 { 方法 'GET' urlPath ('url')

    body([
             'json-string'
        ])
    headers {
        header('Content-Type', 'application/json;charset=UTF-8')
    }
}
response {
    status 200
    body( "\"true\"" )
} }

这对我有用。

于 2018-08-21T06:10:27.050 回答