Тест ресурсов Кваркуса с предварительным определением ресурса

#java #testing #quarkus #quarkus-oidc

Вопрос:

Написание Тестов Компонентов/Интеграции. Использование Quarkus 2.0 с гарантией безопасности, quarkus-junit5-mockito и quarkus-тест-безопасность-oidc

Я хочу протестировать метод ресурсов с предварительным заданием (создать), потому что я хочу протестировать GET.

Проблема в том, что вызовы работают нормально отдельно или не приводят к ошибке.

С обоими вызовами, заканчивающимися: Ожидаемый код состояния <200>, но был <200><403>.

Ввел ресурс, но иметь дело с cdi-это боль, особенно когда об этом позаботятся аннотации к тесту.

Есть какие-нибудь идеи?

 import static io.restassured.RestAssured.given;
...
@QuarkusTest
@TestHTTPEndpoint(MyResource.class)
class MyResourceTest {

private static final String AUTHTOKEN = "Foo Bar.eyJmb28iOiJiYXIifQ==";

@Test
    @TestSecurity(user = "user",
            roles = "user",
            attributes = { @SecurityAttribute(key = "username",
                    value = "testuser") })
    void testGetProducts() {

        final UUID id = given().header(AUTHORIZATION, AUTHTOKEN).when().post("/something").then().statusCode(200).extract().as(UUID.class);

        given().header(AUTHORIZATION, AUTHTOKEN).when().get("/something/all").then().statusCode(200);

//...
        
    }
 

Ответ №1:

Не могу поверить в свою глупость.

Проблема заключалась в том, что Ресурсы, на которые я звонил, были помечены разными ролями, что заставляло меня искать часами.

Отлично работает с предоставленными правильными ролями.