问题描述
我有两个服务 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 (将#修改为@)