2017-08-03 3 views

Répondre

0

Un de mes collègues a fini par faire ce travail pour moi. Sa stratégie était simple mais ennuyante en même temps. Ensuite, il a été utilisé comme base pour l'écriture de nouveaux tests unitaires. Cette classe de base prend en charge le câblage de la plupart des choses ensemble et renvoie des valeurs par défaut saines. La difficulté dans les classes de tests unitaires qui étendent les classes de keycloak de base est que vous rencontrerez parfois des méthodes statiques appelées dans le code keycloak. Si vous êtes chanceux, vous pouvez supprimer le code statique et le transmettre en tant que dépendance. Si vous êtes malchanceux ... alors vous êtes malchanceux. Je n'ai pas encore rencontré le cas malchanceux. Par exemple, nous avons ce AuthenticationManagerHelper pour alléger l'appel à la classe AuthenticationManager statique.

public class AuthenticationManagerHelper { 

    public AuthenticationManager.AuthResult authenticateIdentityCookie(KeycloakSession session, RealmModel realm, boolean checkActive) { 
     return org.keycloak.services.managers.AuthenticationManager.authenticateIdentityCookie(session, realm, checkActive); 
    } 
}