Как протестировать конечную точку Rest API, которая получает пользу от постоянно меняющегося внешнего APIJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как протестировать конечную точку Rest API, которая получает пользу от постоянно меняющегося внешнего API

Сообщение Anonymous »

Я использую внешний API, который возвращает список отсортированных по дате объектов со многими (около 30) свойствами.

Я написал простой Rest API, используя Spring Boot, с одной конечной точкой
/newest_obj_name
которые просто возвращают самое новое имя объекта из этого списка и игнорируют все остальное.

Как я могу достаточно протестировать этот код, в то время как значение из внешнего API постоянно меняется, поэтому я не могу просто использовать ожидаемую строку, как в коде ниже?

Вообще, как подойти к проблеме тестирования в целом в этом сценарии?

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MyTest {

@LocalServerPort
private int port;

private TestRestTemplate restTemplate = new TestRestTemplate();

private HttpHeaders headers = new HttpHeaders();

@Test
public void testRetrieveNewest() {

HttpEntity entity = new HttpEntity(null, headers);

ResponseEntity response = restTemplate.exchange(
createURLWithPort("/newest_obj_name"),
HttpMethod.GET, entity, String.class);

String expected = "{\"name\":\"crazy\"}";

try {
JSONAssert.assertEquals(expected, response.getBody(), false);
} catch (JSONException e) {
e.printStackTrace();
}
}

private String createURLWithPort(String uri) {
return "http://localhost:" + port + uri;
}
}


Подробнее здесь: https://stackoverflow.com/questions/557 ... ng-externa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»