При создании нового ресурса с использованием метода POST
местоположение нового ресурса добавляется к ответу в виде заголовка Location
.
Как создать YML-объект Spring-Cloud-Contract для проверки того, что ответ содержит Заголовок 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);
}
Сгенерированный код не содержит проверки заголовка.