Java REST API ПОЛУЧИТЬ тест

#java #testing #quarkus

#java #тестирование #quarkus

Вопрос:

мне интересно, как протестировать GET, приведенный ниже. У меня нет большого опыта в тестировании, поэтому я был бы рад, если бы кто-нибудь 1 мог показать мне правильный подход или прокомментировать, что мне следует сделать лучше.

 @Path("/some")
public class SomeApi {

    @Inject
    SomeLogic someLogic;

    @GET
    @Produces({"application/json;charset=utf-8","application/json"})
    @RolesAllowed("ek_external")
    public Response getSome(@QueryParam("id") Long id, @QueryParam("name") String name, @Min(0) @DefaultValue("0") @QueryParam("offset") Integer offset, @Min(1) @Max(50) @DefaultValue("20") @QueryParam("limit") Integer limit, @Context SecurityContext securityContext) {
        return someLogic.getSome(id, name, offset, limit, securityContext);
    }
}
  

Это мой GET. Я не уверен, как обрабатывать все эти параметры запроса и аннотированные аргументы.

Я пытаюсь что-то вроде этого

 @QuarkusTest
public class SomeApiTest {

    @Test
    public void testGetSome() {
        given()
                .when().get("/some")
                .then()
                .statusCode(200)
                .body()
    }
}
  

я буду рад показать мне, в какую сторону идти 🙂

Ответ №1:

Пример в документации здесь: https://quarkus.io/guides/getting-started-testing#recap-of-http-based-testing-in-jvm-mode предполагает, что единственное, чего может не хватать, — это установить тело … ...(200).body(is(someBody)) .

Приведенный здесь пример: https://quarkus.io/guides/getting-started-testing#restassured тоже выглядит уместно.

Также убедитесь, что вы предоставляете @TestConfiguration так, чтобы, когда вы @Inject используете класс for SomeLogic , это не null так.

Комментарии:

1. Я попробую это завтра (то же самое для POST) и посмотрю, как это пойдет. Спасибо 🙂