#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) и посмотрю, как это пойдет. Спасибо 🙂