Spring Cloud Contract HTTP тело вывода из файла динамически из запроса - PullRequest
0 голосов
/ 13 февраля 2020

Это был бы хороший и agile способ предоставить «тестовые данные» для фиктивного сервера, если бы можно было динамически получать имя файла ответов из запроса. Интересно, может ли кто-нибудь найти какой-нибудь обходной путь для реализации чего-то вроде:

import org.springframework.cloud.contract.spec.Contract

Contract.make {

    request {
        url "/one/two/three/response"
        method GET()
    }

    response {
        status OK()
        headers {
            contentType applicationJson()
        }
        body ( file( '' + $(consumer(fromRequest().path(3)), producer("response")) + '.json'))
    }
}

Или просто невозможно определить выходной файл динамически из запроса?

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Вы можете сослаться на запрос из отдельного файла json, чтобы поместить значение в указанное свойство c. Например, в файле. json вы можете сделать что-то вроде

{
   "foo": "{{{ request.path.[3] }}}"
}

То, что вы предлагаете, однако, не будет работать. Вы не можете динамически создавать или выбирать другой json файл.

0 голосов
/ 13 февраля 2020

К сожалению, вы не можете делать такие вещи. Вам нужно будет создать тело вручную, а его часть должна иметь ссылки на fromRequest.

...