spring 云合同中响应的参考请求查询参数
Reference request query parameter from response in spring cloud contract
如何在 spring 云合同测试中从响应中引用请求查询参数。
假设我有以下代码:
Contract.make {
description("Contract description")
request {
method 'GET'
urlPath('/some/url') {
queryParameters {
parameter 'user_id': $(consumer(~/\d+/), producer(111))
parameter 'session_id': $(consumer(~/\d+/), producer(222))
parameter 'segment_ids': $(consumer(~/"\[?(\d|,\s*)*\]?/), producer([1, 2, 3]))
}
}
}
response {
status 200
body([1, 2, 3])
headers {
contentType applicationJsonUtf8()
}
}
}
我想用请求中的 segment_ids
值替换响应正文中的 [1, 2, 3]
使用fromRequest().query("request_param")
doc
就我而言:
$(consumer(fromRequest().query("segment_ids")), producer(~/"\[?(\d|,\s*)*\]?/))
还有一个完整的答案
Contract.make {
priority 1
description("Should return available segments for pachinko-game service")
request {
method 'GET'
urlPath('/segmentation-api/evaluation') {
queryParameters {
parameter 'user_id': $(consumer(~/\d+/), producer(111))
parameter 'session_id': $(consumer(~/\d+/), producer(222))
parameter 'segment_ids': $(consumer(~/"\[?(\d|,\s*)*\]?/), producer([1, 2, 3]))
}
}
}
response {
status 200
body($(consumer(fromRequest().query("segment_ids")), producer(~/"\[?(\d|,\s*)*\]?/)))
headers {
contentType applicationJsonUtf8()
}
}
}
如何在 spring 云合同测试中从响应中引用请求查询参数。
假设我有以下代码:
Contract.make {
description("Contract description")
request {
method 'GET'
urlPath('/some/url') {
queryParameters {
parameter 'user_id': $(consumer(~/\d+/), producer(111))
parameter 'session_id': $(consumer(~/\d+/), producer(222))
parameter 'segment_ids': $(consumer(~/"\[?(\d|,\s*)*\]?/), producer([1, 2, 3]))
}
}
}
response {
status 200
body([1, 2, 3])
headers {
contentType applicationJsonUtf8()
}
}
}
我想用请求中的 segment_ids
值替换响应正文中的 [1, 2, 3]
使用fromRequest().query("request_param")
doc
就我而言:
$(consumer(fromRequest().query("segment_ids")), producer(~/"\[?(\d|,\s*)*\]?/))
还有一个完整的答案
Contract.make {
priority 1
description("Should return available segments for pachinko-game service")
request {
method 'GET'
urlPath('/segmentation-api/evaluation') {
queryParameters {
parameter 'user_id': $(consumer(~/\d+/), producer(111))
parameter 'session_id': $(consumer(~/\d+/), producer(222))
parameter 'segment_ids': $(consumer(~/"\[?(\d|,\s*)*\]?/), producer([1, 2, 3]))
}
}
}
response {
status 200
body($(consumer(fromRequest().query("segment_ids")), producer(~/"\[?(\d|,\s*)*\]?/)))
headers {
contentType applicationJsonUtf8()
}
}
}