微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Cloud 合同错误'期望等于 <generated> 闭包

如何解决Spring Cloud 合同错误'期望等于 <generated> 闭包

我的合同是用 groovy 写的。 我有带有 UUID 的请求正文,响应是(另一个随机的)UUID。

Contract.make {
    description "Should create configuration"
    request {
        method 'POST'
        url '/configuration'
        body(
       childBranch: $(consumer(regex(uuid()))),)
        headers {
            header (HttpHeaders.CONTENT_TYPE,new NottoEscapePattern(~'application/json;.*charset=UTF-8.*')) 
        }
    }
    response {
        status HttpStatus.CREATED.value()
        body(${consumer(regex(uuid()))})
    }
}

运行 gradle 任务 generateContractTests 产生具有

java类
    assertthat(responseBody)
.isEqualTo("shouldConfigure$_run_closure1$_closure3$_closure5@6a1d0a91");

在这个类中运行测试会产生

Expecting:
 <""61af388b-d4f8-4eff-ad84-3cb8720138cb"">
to be equal to:
 <"shouldConfigure$_run_closure1$_closure3$_closure5@6a1d0a91">
but was not.

我的合同有什么问题?如何为我的案例正确编写和运行合同?

解决方法

Cześć :) 你真的不应该调用 NotToEscapePattern。问题是在响应中你有 body(${consumer(regex(uuid()))}),你应该有 body($(producer(regex(uuid()))))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。