11
votes

Inclure les tests d'unité dans le même package que le code source en Java

Je suis de retour à Java après un long sint dans le monde rubis et j'ai une question sur les tests Junit et la source que je teste.

Si j'ai un paquet de code graphique pour ma société, appelons-le com.example.graphics , devrais-je inclure mes tests dans ce forfait ou doivent-ils être inclus dans une séparée package, comme com.example.graphics.test ?


4 Réponses :


37
votes

Dans le même paquet Java, c'est bien. En fait, il est nécessaire que vous ayez besoin d'accéder aux classes, aux méthodes ou aux champs privés. Cependant, la source doit être logiquement séparée:

src/main/com/example/graphics
src/test/com/example/graphics


2 commentaires

+1, comme suggéré par la mise en page maven java archetype archetype archetype


Je suggère d'ouvrir une nouvelle question plutôt que de commenter une réponse de 8 ans. Je suggère de vous concentrer sur quel problème spécifique que vous rencontrez et ce que vous avez fait pour essayer de le résoudre.



1
votes

Si vous n'avez pas besoin d'accéder aux classes privées, c'est en fait une question de saveur.

J'ai parfois tendance à créer un projet de test supplémentaire référencé au projet de produit. Par conséquent, le produit et le test sont clairement séparés.


0 commentaires

1
votes

Je garde personnellement tous mes tests dans le même paquet, mais dans l'arbre de test de Maven (que je Toujours utiliser pour les projets Java). Pensez à utiliser Maven pour vos constructions. Cela économise beaucoup de travail de votre part. Il applique une structure similaire à ce que Bkail mentionne, mais vous donne beaucoup plus qu'une mise en page de dossier de projet standardisé - Code de vie du projet (propre, compilé, package, test), plugins, etc.


0 commentaires

0
votes

Mettre en place des tests dans un emballage séparé a tendance à éviter le problème de la présentation accidentelle d'une méthode ou d'une classe à l'emballage que vous avez voulu utiliser les clients à utiliser.


0 commentaires