首页 > 解决方案 > 使用 fromRequest 的 Spring Cloud Contracts 算术函数

问题描述

我正在使用 Spring Cloud Contracts 2.1.1 版。我知道我可以使用原始请求中的某些值来验证响应中的某些值,并且可以在另一个字符串中使用它(即不是按原样,而是与其他字符串连接):

response {
    status 200
    body(
        message: "Hello, ${fromRequest().body('$.name')}!",
    )
}

如果我想对请求中的数字 json 值使用一些算术怎么办,即验证响应是否增加了该值:

response {
    status 200
    body(
        result: ${fromRequest().body('$.count')} + 1
    )
}

或者,甚至可能添加两个数值,例如:

response {
    status 200
    body(
        result: ${fromRequest().query('num1')} + ${fromRequest().query('num2')}
    )
}

显然,最后两个片段无效,但说明了我正在寻找的内容。当前的 Spring Cloud Contracts 是否有可能?

标签: javaspringspring-cloud-contract

解决方案


不,它无效。问题是你为什么要测试这个逻辑。从合同测试的角度来看,您也许应该只检查那里是否有数字?


推荐阅读