сообщения или тело объекта (Entity Body) • Основные заголовки • Заголовки запроса • Заголовки ответа • Заголовки сущности message-body = entity-body | <entity-body закодировано согласно Transfer-Encoding> • Метод URI HTTP/Версия • HTTP/Версия код пояснение
public class WeatherResp { public String city; public String getCity() { return city; } public List<Temperature> temperatures; public List<Temperature> getTemperatures() { return temperatures; } } Интерфейс API Класс ответа
logging.setLevel(HttpLoggingInterceptor.Level.BASIC); OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(logging).build(); /*--------------------------------------------------*/ //Логирование в rest-assured given().log().all(). и т.д. Логирование
/* Особо запущенный случай */ @Test public void veryBadTest() { Thread.sleep(10000); //то чего ждем Thread.sleep(20000); //какая-то проверка логики Thread.sleep(30000); //то чего ждем повторно Thread.sleep(40000); //еще какая-то проверка логики Thread.sleep(50000); } Не использовать Thread.sleep в тестах
} /* Интересно, а что будет дальше? */ public class BaseTest extends BaseBaseTest { } /* Эм, а что было вначале? */ public abstract class BaseBaseTest extends BaseBaseBaseTest { } И так далее... Старайтесь не использовать наследования • в тестовых классах
//getters and setters... } @Test public void goodTest() { //тут основная логика теста... String content = response.returnContent() .asString(); //получаем объект, с которым удобно работать ObjectMapper mapper = new ObjectMapper(); WeatherResp obj = mapper.readValue(entity, Resp.class); //работаем с этим объектом assertThat(obj.getParam(), equalTo("blah")); assertThat(obj.getParam1(), equalTo(1)); } Работайте с объектами!