gpt4 book ai didi

spring-cloud - 如何在 spring cloud contract 中指定一个可选的 Date 属性?

转载 作者:行者123 更新时间:2023-12-05 06:32:26 25 4
gpt4 key购买 nike

我正在尝试使用 spring cloud contract。我编写了一个 JSON 正文规范,我需要一个可选的 Date 属性。当我在 groovy dsl 中指定时:

"processingDate": $(consumer(optional(anyDate())), producer(anyDate())),

它失败了:

Exception in thread "main" Assertion failed: 

assert testSide ==~ Pattern.compile(stubSide.optionalPattern())
| | | | |
| false | | (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
| | (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
| (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2011-01-11))

然而,当将可选的与正则表达式一起使用时,它会起作用:

"processingDate": $(consumer(optional(regex(isoDate()))), producer(LocalDateTime.now().format(DateTimeFormatter.ISO_DATE))),

但显然我不想对每个可选字段都使用这样的解决方法。

谢谢!

最佳答案

anyDate() 应该像这样直接使用:

"processingDate": ${anyDate()}

如果您需要正则表达式,请使用 isoDate()。使用 org.springframework.cloud.contract.spec.internal.PatternValueDslPropertyorg.springframework.cloud.contract.spec.internal.RegexPatterns 的代表之间的区别/p>

关于spring-cloud - 如何在 spring cloud contract 中指定一个可选的 Date 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com