7
votes

Existe-t-il un moyen d'automatiser les tests de propriété Junit Bean?

Faisons face à elle, les tests de propriété de haricot sont peut-être la pire utilisation du temps. Mais ils doivent être faits.

Par exemple. Si vous testez une propriété String pour propname Un appel tel que le suivant: xxx

validerait que:

  • obtenez et définir existent.
  • Si vous utilisez la valeur attendue, un test sur Obtenir Appels Assertequals pour la valeur donnée.
  • ( obtenez , est ) / définit méthodes se comportent comme prévu.

    Je pourrais aller commencer à écrire ces implémentations, mais je veux savoir s'il y a quelque chose de disponible pour faciliter cela. D'autres attributs facultatifs pourraient être utilisés pour valider que null est autorisé ou utilise la validation du bean JSR-303 pour valider le champ.


9 commentaires

N'est-ce pas quelque chose d'exhaustif pour tester pour getter / setter? Est-ce nécessaire?


IMHO, ce type de test doit être évité. Il générera beaucoup plus de travail que le gouttement, sans parler de tonnes de tests à maintenir.


Je suis totalement d'accord avec vous deux. Personnellement, je ne crée jamais le getter / setter et comptez sur Netbeans pour les créer. Chaque fois que je les modifie, je supprime déjà Getter / Setter et les régénérer des champs. Mais qu'en est-il de la couverture de code?


Code-Coverage sera atteint si ces getter / setter sont appelés dans d'autres cas de test!


L'automatisation n'est-elle pas une sorte de vaincre leur but?


@ D33J, imho no. Tout a eu un bug car le setter définissait l'argument au lieu de la variable d'instance? C'est quelque chose que j'ai vu beaucoup, où la méthode pourrait aller bien, mais la variable d'instance avait une faute de frappe et aucun explicite. dans le setter. Je suis sûr qu'il y a plus d'exemples.


Qu'en est-il de la couverture de code? L'objectif du développement n'est pas une couverture à 100%. De plus, s'il n'est pas utilisé dans d'autres tests, pourquoi le garder? Une option - Projet Lombok. N'écrivez pas les getters / setters. Rien à tester.


De nombreux haricots d'entité d'entreprise ne seront utilisés que par des méthodes de service pour peupler ces haricots. Celles-ci nécessitent des tests pour s'assurer qu'elles sont renvoyées correctement d'un service de simulation, mais cela ne fait que tester efficacement que les propriétés de l'entité fonctionnent. Avoir une capacité à tester ces tests sans écriture et les tests susceptibles d'erreurs sont bénéfiques.


Vous pouvez consulter la bibliothèque suivante, c'est ce que vous recherchez: Outsidemybox.github.com/ Testutils


4 Réponses :


0
votes

Je peux penser à Utilisation de la réflexion si vous voulez faire Ça manuellement
ou se référer à cette réponse pour les communes:

Méthode de test Junit pour Getters & Setters


0 commentaires

0
votes

Créez un autre haricot afin de cela ressemble à votre haricot testé. puis utilisez Apache-Commons, Festassert, Hamcrest ou tout autre cadre qui peut faire la comparaison à l'aide de la réflexion. Ne l'écrivez pas seul, je suis certain que c'est déjà fait


0 commentaires

7
votes

Il y a plusieurs bibliothèques / extraits de code existants qui facilitent cela. En faisant une recherche rapide, j'ai trouvé quelques-uns qui ont un potentiel:


0 commentaires

0
votes

mise à jour sur le testeur JavaBean ci-dessus

Il y a un Projet de fourche actif à la boîte de codes mentionnée ci-dessus (mais morte) / JavaBean -tester qui semble assez beau ...


0 commentaires