Les tests unitaires vs tests d'intégration avec Spring

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 de 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:

  1. 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 cette?

  2. En outre, comment voulez-vous séparer les tests unitaires à partir des tests d'intégration? J'ai tout le code source dans src, les tests unitaires dans test - devrait-il y avoir un 2ème dossier de test (comme 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é.

InformationsquelleAutor matt b | 2008-11-11