如何解决有没有办法为 spring 云合同消费者注入/替换一些值?
我有两个服务 A 和 B
我想使用服务 A 的合同中定义的内容来测试服务 B
服务 B 的基本规范的一部分
def receiveEventFromSvcA(){
stubTrigger.trigger('publish.event.to.queue.for.service.B')
// I want the same message with slightly different content as
// things under test happen when second message arrives
stubTrigger.trigger('publish.event.to.queue.for.service.B') // content with new timestamp
}
这是服务 A 的合同:
Contract.make {
label("publish.event.to.queue.for.service.B")
input {
triggeredBy("triggerAction()")
}
outputMessage {
sentTo "queue.for.B"
headers {
header("contentType","application/json")
}
body([
"some_value" : anyNonEmptyString(),// works
"timestamp" : $(c("2021-01-21T10:50:09Z"),p(iso8601WithOffset())),// does not work (fails with 'Failed to serialize payload' as timestamp is "timestamp":{"executionCommand":"getMeCustomTime()"}}")
// "timestamp" : $(c(execute("getMeCustomTime()")),])
}
}
和服务 B 的合同
Contract.make {
label("publish.event.to.some.other.qeueue")
input {
triggeredBy("receiveEventFromSvcA()")
}
outputMessage {
sentTo "otherQueue"
headers {
header("contentType",// whatever here...
])
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。