Юнит-тестирование с OID C Auth Server невозможно? - PullRequest
0 голосов
/ 11 июля 2020

пытался написать модульные тесты для моего приложения, но наткнулся на следующую проблему.

С момента определения сервера аутентификации (в данном случае Keycloak) мое приложение Quarkus даже не запускалось без запущенного сервера аутентификации. Вот почему я хочу спросить, могу ли я отделить эту жесткую зависимость?

Я пытался использовать методы модульного тестирования, которые не защищены каким-либо механизмом, чтобы метод был полностью независим от Jwt или сервера Auth.

Заранее благодарим и с уважением,

Rosario

Application.properties

#OIDC
quarkus.oidc.client-id=xxx
#quarkus.oidc.credentials.secret=1bef[..]
quarkus.oidc.application-type=service
quarkus.oidc.auth-server-url=http://localhost:8081/auth/realms/randomRealm

Test:

@Test
public void testHelloEndpoint() {
given()
.when().get("/video/hello")
.then()
.statusCode(200)
.body(is("hello"));
}

1 Ответ

1 голос
/ 12 июля 2020

Вы можете деактивировать oid c в тестовом профиле. Просто добавьте в свое приложение следующее :

%test.quarkus.oidc.enabled=false

Примечание. Если вы когда-нибудь захотите написать тесты, включающие подключение к oid c, это решение не будет работать, потому что вы не можете отметить тесты там, где они должны быть. активировано или нет. Затем вам нужно запустить сервер oid c, например keycloak, то есть с testcontainers. Я думаю, что у Rest-Assured есть способ добавить для этого учетные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...