Groovy 引用spring云契约中响应的请求查询参数

Groovy 引用spring云契约中响应的请求查询参数,groovy,spring-test,spring-cloud-contract,Groovy,Spring Test,Spring Cloud Contract,如何在spring云契约测试中从响应中引用请求查询参数 假设我有以下代码: Contract.make { description("Contract description") request { method 'GET' urlPath('/some/url') { queryParameters { parameter 'user_id': $(consumer(~/\d+/), pro

如何在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()
        }
    }
}
我想用请求中的
段ID
值替换响应正文中的
[1,2,3]

就我而言:

$(消费者(fromRequest().query(“段ID”)),生产者(~/“\[?(\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()
        }
    }
}
使用
fromRequest().query(“请求参数”)

就我而言:

$(消费者(fromRequest().query(“段ID”)),生产者(~/“\[?(\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()
        }
    }
}