Если у вас есть несколько вызовов rest api, выполняемых в вашем классе обслуживания, вам придется имитировать все вызовы api, чтобы вернуть фиктивные данные для запуска вашего теста. Так же, как вы имитировали ответ на первый вызов API, добавьте фиктивный ответ для второго вызова API перед вызовом своей службы в тесте. Вместо использования any()
в качестве сопоставителя аргументов укажите конкретный URL-адрес, который вы собираетесь вызывать из кода, чтобы различать два макета вызова api.
Если вы используете Springboot и используете spring-boot-test
для Интеграционное тестирование, тогда вы можете использовать TestRestTemplate
например:
TestRestTemplate testRestTemplate = new TestRestTemplate();
ResponseEntity<String> response = testRestTemplate.
getForEntity(FOO_RESOURCE_URL + "/1", String.class);
assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
или Если у вас просто есть тестовый пример Unit с использованием Mockito, например, тогда:
@Mock
private RestTemplate restTemplate;
@InjectMocks
private EventService eventService = new EventService();
@Test
public void givenMockingIsDoneByMockito_whenGetIsCalled_shouldReturnMockedObject() {
SomeObject instance = new SomeObject(“E001”, "Eric Simmons");
Mockito
.when(restTemplate.getForEntity(
“http://localhost:8080/test/E001”, SomeObject.class))
.thenReturn(new ResponseEntity(instance, HttpStatus.OK));
SomeObject returnedObject = eventService.getEventsByGlobalKey(id);
Assert.assertEquals(instance, returnedObject);
}