Printemps incorporé serveur ldap dans les tests unitaires
Je suis en train d'essayer d'utiliser un intégré le serveur ldap pour les tests unitaires.
Au Printemps de Sécurité, vous pouvez définir rapidement intégré le serveur ldap pour les essais avec le tag avec des exemples de données chargées depuis la ldif.
Je serai à l'aide de Printemps Ldap pour effectuer des opérations ldap, et la pensée de tester l'habitude CRUD les caractéristiques de mon service de l'Utilisateur de l'objet.
Est là, cependant, un moyen de s'assurer que les entrées du serveur embarqué pour être dans le même état cohérent (comme une sorte de supprimer tous les et recharge la ldif entrées) pour chaque test, je suis en cours d'exécution?
J'ai pensé à la suivante:
1) Indiquent que la méthode souillures du contexte, et de la force d'un centre de loisirs de l'embedded serveur ldap, ce qui semble pénible qu'elle aurait à redémarrer le serveur pour chaque méthode
2) Créer le test des entrées dans une organisation de tests, tels que je peux séparer d'eux et il suffit de charger le fichier ldif de nouveau là.
Je préfère le 2, mais il semble que le Printemps LDAP n'a pas de bonnes aides pour charger et de les envoyer à travers le contenu d'un fichier ldif.
Des suggestions sur la façon d'effectuer ldap tests intégrés serveur ldap de printemps, ou des deux solutions possibles-je mentionner?
Grâce
Vous devez vous connecter pour publier un commentaire.
Je suis peut-être hors piste ici, mais si vous n'êtes pas tester l'intégration LDAP, vous pourrait se Moquer de la connexion LDAP avec un Simulacre de l'objet qui renvoie toujours les valeurs que vous attendez de sorte que vos autres Tests Unitaires pouvez remplir.
Si vous testez la connexion LDAP, alors vous êtes vraiment en train de faire un test d'intégration. Dans ce cas, c'est probablement mieux pour vous connecter à un réel LDAP mise en œuvre.
Ne fait pas le Printemps LDAP fournir transactionnelle de contrôle des opérations LDAP? Si oui, pourquoi ne pas utiliser Spring framework de test avec son auto-capacité de restauration?
Je sais aussi de JDBC-LDAP pont conducteur qui encapsule un référentiel LDAP, en la présentant comme une base de données relationnelle. J'ai utilisé iBatis pour se connecter à cela (j'ai écrit ce jusqu'à http://lokibear.blogspot.com, voir les articles à partir de juillet). Je n'ai pas encore essayé l'application de contrôle de transaction, mais le site internet pour le pilote mentionne la possibilité d'ignorer les transactions (ce qui signifie que vous pouvez également pas ignorer...non?).
Comme je l'ai dit, je n'ai pas essayé encore; mais, si cette offre de transactions autour de LDAP, vous pouvez de nouveau utiliser le Printemps framework de test pour obtenir l'auto-restauration à la place. J'ai mis un rapide triche autour de ce cadre - voir le septembre posts sur mon blog.
Désolé, je suis peut-être le manque de votre objectif, ici, mais peut-être que ces suggestions sont utiles. Bonne chance!
Vous peut ou peut ne pas savoir que le LDAP intégré la fonctionnalité n'est pas prévue avant le Printemps LDAP lui-même, mais Apache Directory Server. Malheureusement, la LDIF chargeur dans Apache DS (câblé par le Printemps, en tout cas) a très mauvaise gestion des erreurs et de la capacité d'établissement de rapports, et en tant que tel ne va probablement pas à se comporter comme vous le désirez vraiment pour un test unitaire. Votre meilleur pari si vous voulez vraiment commencer à partir de zéro à chaque fois est de prendre la tête du Ressort de la Sécurité LDAP tests unitaires et réinitialiser Apache DS tous les temps, avec un chiffon propre fichier LDIF charge.
Sinon, vous pouvez éviter LDIF complètement et de construire votre propre unité de test wrapper qui vérifie les pré - et post-conditions des données avant votre unité de tests en cours d'exécution. Ce serait plus de travail, mais à la fin, peut mieux fonctionner pour vous.
Fonctionne très bien pour moi:
J'ai demandé quelque chose de similaire et a obtenu une réponse de Luke Taylor: Les tests d'intégration avec ressort de sécurité et ldap