Groovy Spring Contract DLS превращает строку в JSON - PullRequest
0 голосов
/ 10 мая 2018

У меня есть следующий скрипт генерации контракта:

VALID_JSON_STRING = '{}'
[
        Contract.make {
            name("insertSomething_ShouldReturnHttp200")
            description("POST should do sth")
            request {
                method 'POST'
                url REQUEST_URL
                body(
                        value: VALID_JSON_STRING
                )
                headers {
                    contentType(applicationJson())
                }
            }
            response {
                status 200
                headers {  contentType(applicationJson()) } }
        }
]

Но он компилируется в:

@Test
public void insertSomething_ShouldReturnHttp200() throws Exception {
    // given:
        MockMvcRequestSpecification request = given()
                .header("Content-Type", "application/json")
                .body("{\"value\":{}}");

    // when:
        ResponseOptions response = given().spec(request)
                .post("...");

    // then:
        assertThat(response.statusCode()).isEqualTo(200);
        assertThat(response.header("Content-Type")).matches("application/json.*");
}

Обратите внимание на .body("{\"value\":{}}"); здесь.

Вместо негодолжно быть .body("{\"value\":\"{}\"}");.Он не должен преобразовывать JSON-строку в фактический JSON.Как мне предотвратить это?

РЕДАКТИРОВАТЬ: Это было теперь помечено как ошибка: https://github.com/spring-cloud/spring-cloud-contract/issues/652

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...