Как установить тип контента для @SpringBootTest - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть класс SpringBootTest, который использует SpringRunner:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT)
public class DemoApplicationTests {

    @Test
    public void testCustomerList() {

        get("http://localhost:8080/list")
                .then()
                .assertThat()
                .statusCode(200)
                .body("size()", is(2));



    }

}

Я хотел бы изменить заголовок подтверждения для теста, так же, как я сделал бы с curl:

curl --header "Accept: application/json" curl http://localhost:8080

Я пытался с:

get("http://localhost:8080/list").contentType(MediaType.APPLICATION_JSON)

Однако я получаю ошибку "ContentType не может быть применен к опциям ответа". Можете ли вы порекомендовать способ исправить это? Спасибо!

Ответы [ 3 ]

0 голосов
/ 19 апреля 2020

Вы можете добавить заголовок подтверждения, используя accept метод:

.accept(MediaType.APPLICATION_JSON_VALUE)

См. Также Принять против типа содержимого

Заголовок подтверждения используется HTTP клиенты сообщают серверу, какие типы контента они будут принимать. Затем сервер отправит ответ, который будет содержать заголовок Content-Type, сообщающий клиенту, какой тип содержимого возвращаемого содержимого на самом деле является

0 голосов
/ 19 апреля 2020

Кажется, я понял это. Поскольку get равно io.restassured.RestAssured.get (мои извинения за то, что я его не указал), то оно должно быть:

given()
.contentType("application/json").
.get("http://localhost:8080/list")
0 голосов
/ 19 апреля 2020

Вы указываете тип контента, а не заголовок accept. Content-type - это то, что вы ожидаете от сервера. Попробуйте

    get("http://localhost:8080/list")
            .accept(MediaType.APPLICATION_JSON_VALUE)
            .then()
            .assertThat()
            .statusCode(200)
            .body("size()", is(2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...