При создании нового ресурса методом POST
местоположение нового ресурса добавляется в ответ в виде заголовка Location
.
Как создать YML-контракт spring-cloud, чтобы убедиться, что ответ содержит заголовок Location
с допустимым значением URI
?
Я пытался использовать YAML ниже, но это не сработало.
request:
method: POST
url: /customers/v1
body:
firstName: First Name
lastName: Last Name
dateOfBirth: "1990-12-12"
active: false
headers:
Content-Type: application/json
response:
status: 201
matchers:
headers:
- key: Location
regex: "http://localhost/customers/v1/*"
Сгенерированный код для тестирования
@Test
public void validate_create_customer_successfully() throws Exception {
// given:
MockMvcRequestSpecification request = given()
.header("Content-Type", "application/json")
.body("{\"firstName\":\"First Name\",\"lastName\":\"Last Name\",\"dateOfBirth\":\"1990-12-12\",\"active\":false}");
// when:
ResponseOptions response = given().spec(request)
.post("/customers/v1");
// then:
assertThat(response.statusCode()).isEqualTo(201);
}
Сгенерированный код не содержит проверки заголовков.