J'ai une classe avec une clé primaire stockée dans une base de données. Lors de la création d'une nouvelle instance de la classe, elle peut être extraite de la base de données HSQLDB ou pour les éléments non inclus dans la base de données elle insère tout sauf la clé primaire et est générée automatiquement et renvoyée à la classe pour définir l'attribut id. J'ai alors une méthode getID() pour récupérer cet ID. J'essaye d'écrire un test JUnit qui vérifie que l'ID généré est ce qui est retourné par la méthode getID() mais j'ai déjà utilisé la requête 'CALL IDENTITY' pour récupérer l'ID dans le constructeur et les utilisations suivantes de ce retour 0. Quelle est la meilleure façon de s'assurer que l'ID généré est le même que l'ID retourné par la méthode getID()?Création de tests JUnit pour les éléments de base de données avec des clés générées automatiquement
Q
Création de tests JUnit pour les éléments de base de données avec des clés générées automatiquement
0
A
Répondre
1
Je voudrais vraiment considérer la conception différente pour tester les classes. Accéder à une base de données n'est vraiment pas un test unitaire dans la plupart des cas. Si le générateur d'ID db fonctionne et a un test, vous ne devriez pas en avoir vraiment besoin pour tester votre classe.
A condition que votre classe puisse renvoyer un Id, alors tout ce qui devrait l'intéresser, c'est que votre classe retourne l'identifiant qui y a été entré au bon moment.
Questions connexes
- 1. Données de test générées automatiquement à une base de données à partir d'un schéma?
- 2. Création de données fictives pour les tests unitaires
- 3. Réplication de base de données avec des clés composites?
- 4. Création de dictionnaires avec des clés prédéfinies
- 5. Spring & Struts2 REST - tests junit
- 6. Création d'une base de données pour l'appariement des contraintes
- 7. Tests d'intégration de base de données
- 8. Comment effectuer des tests Junit avec Struts - Ibatis
- 9. Stratégies de chargement de données et d'initialisation de base de données pour les tests d'intégration
- 10. Impossible d'exécuter des tests junit dans Eclipse
- 11. Création d'une base de données avec ADO.NET (et EntityFramework)
- 12. Problème avec la largeur des colonnes générées automatiquement dans DataGrid
- 13. besoin d'aide avec la création de base de données
- 14. Création d'une base de données pour un système de classification
- 15. Cadre de tests unitaires pour bases de données
- 16. Tests de la base de données après intégration (Selenium)
- 17. Tutoriel pour la création de modèles de rails et d'échafaudages avec des relations de clés étrangères
- 18. Ajouter automatiquement des propriétés lors de l'exécution de JUnit dans Eclipse
- 19. NUnit. Comment générer automatiquement des tests?
- 20. Exécuter MSTest avec des tests sur différentes bases de données
- 21. Classe pour extraire automatiquement les champs de base de données dans les contrôles .NET
- 22. Lier automatiquement des mots-clés dans les textes de la page à partir de la liste des mots
- 23. Décryptage Python RSA à l'aide de clés générées par OpenSSL
- 24. Tests unitaires et clés primaires
- 25. Création d'une base de données pour un formulaire Web général
- 26. Hudson travail avec des rapports de tests Gallio "No tests"
- 27. la taille des colonnes de base de données pour les données à base de caractères
- 28. Synchronisation des données de base
- 29. Automatisation de l'installation de CentOS avec VMware pour les tests
- 30. Utilisation des clés RSA générées par Crypto ++ sur OpenSSL
Je suis plus à essayer de tester la méthode getID() de la classe. Il se trouve que cet ID est généré par la base de données, donc je ne peux pas simplement vérifier si c'est ce que je lui ai demandé d'instancier. – Haegin
@Haegin - Personnellement, je ne testerai pas explicitement les getters. J'essaie de tester le comportement (qui peut être visible via un getter). Si tout votre 'getID()' le fait en retournant un champ 'private' alors le test ne vaut pas vraiment la peine d'écrire, et le comportement de votre système ne devrait certainement pas dépendre de la persistance des objets. –