У меня есть следующий скрипт генерации контракта:
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