Je suis en train de travailler sur un Spring MVC projet, et j'ai des tests unitaires pour l'ensemble des divers éléments dans l'arbre source.
Par exemple, si j'ai un contrôleur HomeController
, qui doit avoir un LoginService
injecté dans, alors dans mon unité de test HomeControllerTest
j'ai simplement créer une instance de l'objet en tant normal (en dehors de Printemps) et injecter de la propriété:
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService( new SimpleLoginService() );
//...
}
Cela fonctionne très bien pour tester chaque composant comme une unité isolée - sauf que maintenant que j'ai quelques dizaines de classes dans le projet, après l'écriture d'une classe et de l'écriture avec succès un test unitaire pour elle, j'oublie de mettre à jour mon Spring MVC fichier de contexte qui fait tout le câblage dans l'application déployée. Je trouve que j'ai oublié de mettre à jour le fichier de contexte quand j'déployer le projet sur Tomcat et trouver un tas de NullPointers de non-câblé haricots.
Donc, voici mes questions:
C'est mon premier projet pour le Printemps - est-il normal de créer des tests unitaires pour l'individu, les haricots, comme je l'ai fait, et ensuite de créer une deuxième série de tests (tests d'intégration) pour tester que tout fonctionne comme prévu avec le contexte de l'application? Est-il une meilleure pratique établie pour cela?
En outre, comment voulez-vous séparer les tests unitaires à partir des tests d'intégration? J'ai tout le code source en
src
, les tests unitaires entest
- devrait-il y avoir un 2ème test de dossier (test-integration
) pour l'intégration des cas de test?
Comme c'est mon premier projet pour le Printemps, je suis curieux de voir comment les autres vont habituellement à propos de faire ce genre de chose - et plutôt que de ré-inventer la roue, je préfère demander au reste de la communauté.