У нас есть случай, когда у нас есть два разных результата на стороне производителя в зависимости от запроса, один - для успеха, а какой - сообщение об ошибке.
Упрощенный образец с двумя контрактами: 1) Contract.make {request {
method PUT()
urlPath("/sample")
headers {
contentType('application/json')
}
body("{\"acc\": \"1234A\" ,\"case\":\"abc23\",\"re\":2018/12/12}")
}
response {
status BAD_REQUEST()
}
} 2) Contract.make {request {
method PUT()
urlPath("/sample")
headers {
contentType('application/json')
}
body("{\"acc\": \"1234\" ,\"case\":\"abc23\",\"re\":2018/12/12}")
}
response {
status 200
}
}
На стороне потребителя он может соответствовать обоим запросам, поскольку, когда я запускаю тестовый пример недопустимого запроса, он выдает org.springframework.web.client.HttpClientErrorException $ BadRequest: 400 Bad Request
Но для обоих сценариев я могу видеть запрос и соответствующий ответ, я могу видеть в журналах
Может ли кто-нибудь помочь мне в этом?
Спасибо
Это мои потребительские тесты
1) его сценарий запроса на успех, он работает нормально, он получает 200
enter code here
@Test
public void should_update_case_sucess() throws Exception {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("Content-Type", "application/json");
ResponseEntity<String> response = restTemplate.exchange(
"http://localhost:8083//sample",
HttpMethod.PUT,
new HttpEntity<>("{\"acc\":\"1234\",\"case\":\"abc23\",\"re\":\"20181212\"}", httpHeaders), String.class);
BDDAssertions.then(response.getStatusCodeValue()).isEqualTo(200);
}
2) Это сценарий сбоя, который не получает 400 ответов, вместо этого он вызывает ошибку httpclient, он не может вызвать цель
enter code here
@Test
public void should_update_case_error() throws Exception {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("Content-Type", "application/json");
ResponseEntity<String> response = restTemplate.exchange(
"http://localhost:8083//sample",
HttpMethod.PUT,
new HttpEntity<>("{\"acc\":\"1234A\",\"caseNumber\":\"abc23\",\"representmentStartDate\":\"20181212\"}", httpHeaders), String.class);
BDDAssertions.then(response.getStatusCodeValue()).isEqualTo(400);
}
Не могли бы вы помочь мне в этом