Привет! Спасибо за вопрос и предложение. Это как раз сырой вариант, можно было бы и сразу сделать параметризированным, но я тут только учился и искал наиболее подходящую реализацию.
Первый вариант
Затем были добавлены новые ручки этой API и понадобилось сделать отдельно метод на /offices requestSpecificationOffices = RestAssured.given() .baseUri(BASE_URL_POS) .basePath(OFFICES) .accept(ContentType.JSON);
И метод на проверку по городу, метро, радиусу и лимиту
public static HashMap<String, Object> getCityAndMetroRadiusAndLimitTestData(String city, String metroRadius, String limit) { HashMap<String, Object> metroParams = getCityTestData(city); metroParams.put(METRO_RADIUS.getResponseFiledName(), metroRadius); metroParams.put(LIMIT.getResponseFiledName(), limit); return metroParams; } И ещё были вынесены проверки: public static ValidatableResponse checkResponseStatusCodeAndScheme(ValidatableResponse response, int code, String schema) { return response .statusCode(code) .body(matchesJsonSchemaInClasspath(schema)) .time(lessThan(1000L)); } public static void checkResponseHasItemsInPath(ValidatableResponse response, String path, String item) { response .body(path, hasItems(item)); } Время отклика захардкожено, т.к. на проекте есть стандарты, которые не меняются годами. Обязательно выложу позже обновление, можно сделать второй частью, чтобы показать развитие API и подстраивание тестов под новые требования
Привет! Спасибо за вопрос и предложение. Это как раз сырой вариант, можно было бы и сразу сделать параметризированным, но я тут только учился и искал наиболее подходящую реализацию.
Затем были добавлены новые ручки этой API и понадобилось сделать отдельно метод на /offices
requestSpecificationOffices = RestAssured.given()
.baseUri(BASE_URL_POS)
.basePath(OFFICES)
.accept(ContentType.JSON);
И метод на проверку по городу, метро, радиусу и лимиту
public static HashMap<String, Object> getCityAndMetroRadiusAndLimitTestData(String city, String metroRadius, String limit) {
HashMap<String, Object> metroParams = getCityTestData(city);
metroParams.put(METRO_RADIUS.getResponseFiledName(), metroRadius);
metroParams.put(LIMIT.getResponseFiledName(), limit);
return metroParams;
}
И ещё были вынесены проверки:
public static ValidatableResponse checkResponseStatusCodeAndScheme(ValidatableResponse response, int code, String schema) {
return response
.statusCode(code)
.body(matchesJsonSchemaInClasspath(schema))
.time(lessThan(1000L));
}
public static void checkResponseHasItemsInPath(ValidatableResponse response, String path, String item) {
response
.body(path, hasItems(item));
}
Время отклика захардкожено, т.к. на проекте есть стандарты, которые не меняются годами.
Обязательно выложу позже обновление, можно сделать второй частью, чтобы показать развитие API и подстраивание тестов под новые требования