У нас есть случай, когда у нас есть два разных результата на стороне производителя, в зависимости от того, какой запрос предназначен для успеха и на котором выдается сообщение об ошибке.
Упрощенный пример с двумя контрактами: 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) его запрос на успехScenauro работает нормально, он получает 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 Respose, вместо этого он выдает ошибку 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);
}
Не могли бы вы помочь мне в этом