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é code> String code> pour validerait que: p > 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 propname code> Un appel tel que le suivant: p>
obtenez code> et
définir code> existent. li>
Obtenir code> Appels
Assertequals code> pour la valeur donnée. LI>
obtenez code>,
est code>) /
définit code> méthodes se comportent comme prévu. Li>
ul>
null code> est autorisé ou utilise la validation du bean JSR-303 pour valider le champ. P> P>
4 Réponses :
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: p>
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 p>
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: p>
J'ai vu quelqu'un prendre le premier exemple que j'ai énuméré (sympa et simple parce que c'est juste une seule classe) et la modifier pour mieux répondre à leurs besoins. P>
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 ... p>
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 Code> 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. Code> 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