Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Перезатирание content-type при вызове теста

api
rest-assured
java
json
Теги: #<Tag:0x00007fedbaf03d68> #<Tag:0x00007fedbaf03c28> #<Tag:0x00007fedbaf03ae8> #<Tag:0x00007fedbaf03728>

(Arina) #1

Добрый день.
Есть BaseTest где указано

.setContentType(ContentType.JSON)
.addHeader("Accept-Language", "en")

и сам тест

someActions.getInfoWithoutContentType(name).
                then().
                assertThat().
                statusCode(415).

Собственно, что нужно указать в тесте в хэдэрэ, чтобы перезатереть ContentType из BaseTest?
Для получения 415 status

Просто header пустой или null не подходит. Какие есть еще варианты?


(Дмитрий Еремин) #2

на код бы взглянуть…


(Дмитрий Еремин) #3

и посмотрите на раздел Headers (https://github.com/rest-assured/rest-assured/wiki/Usage#headers)
В частности

given().
        config(RestAssuredConfig.config().headerConfig(headerConfig().overwriteHeadersWithName("x"))).
        header("x", "1").
        header("x", "2").
when().
        get("/something").

Пишут,
This means that only one header, "x: 2", is sent to server.


(Arina) #4

тогда вот так

@Test
public void authWithoutContentType() {
String name = testData.getUserNonExistPhone();

    someActions.getInfoWithoutContentType(name).
            then().
            assertThat().
            statusCode(415).
}

public Response getUserNonExistPhone(String name) {
Response response =
given().
header(“Accept-Language”, “”).
body(authBody(name)).
post("/v2/auth");
return response;
}

baseTest был выше

Так он отправляет
/*
Headers: Accept-Language=en
Accept-Language=
=
Accept=/
Content-Type=application/json
*/

А нужно в getUserNonExistPhone сделать такой header, чтобы перезатирал header из baseTest.
Или так сделать не выйдет?


(Дмитрий Еремин) #5

Вопрос, собственно, про этот метод

Что у него внутри, как работает?


(Arina) #6

Вы знаете, все оказалось проще

public Response getWithoutContentType(String name) {
Response response =
given().
contentType(ContentType.TEXT). - эта строка принесла статус 415
body(authBody(name)).
post("/v2/auth");
return response;
}

Спасибо!