Question

Mon projet Web de printemps est composé de:

  1. UTIL CLASSES;
  2. référentiels;
  3. services;
  4. contrôleurs.

    Les tests sont les suivants:

    1. Tests unitaires pour les classes UTIL;
    2. Tests d'intégration de printemps pour les référentiels avec HSQLDB;
    3. Tests unitaires pour les services avec des référentiels simulés;
    4. Tests unitaires pour les contrôleurs avec des services simulés.

      Il peut également y avoir des tests système qui testent la fonctionnalité globale du projet. Il peut être effectué avec un outil externe tel que le sélénium ou peut être effectué à l'aide de tests d'intégration de ressort.

      La question est, devrais-je inclure de tels tests de système d'intégration de printemps dans un projet ou devraient-ils être séparés d'une manière ou d'une autre?

      Je vois deux problèmes concernant les tests système dans un projet: 1. Ils ont besoin de réglage de la configuration car ces tests ne s'exécuteront pas avec la configuration de la production (par exemple, des tests ont besoin d'une source de données locale, et non de celui de JNDI); 2. Ils ne sont pas autonomes, ils ont besoin de ressources externes et ainsi de suite. Je ne peux pas simplement les exécuter comme des tests d'unité habituels.

      Comment organisez-vous vos tests système?

Était-ce utile?

La solution

sur de petits projets que j'ai gardés au même endroit. Sur les grands projets d'entreprise (le type pour lequel vous pourriez utiliser utilement Spring, par exemple), nous avons généralement organisé des tests système dans un package / projet distinct. Cela aide à les garder séparé de la base de code principale.

Si vous ne le faites pas, il existe toutes sortes de tentations de réutiliser les cours du code pour "aider" dans quelque chose qui devrait être plus fortement axé sur l'expérience des utilisateurs du système (un utilisateur peut être un autre système. ). Si cela se produit, vous vous retrouvez avec un couplage entre les classes de domaine du projet et l'interface utilisateur, qui aura l'effet inévitable de ne pas avoir besoin d'une grande partie de la logique qui les empêche de les garder découplés dans la véritable basebase.

La plupart du temps, la logique des scénarios système sera réellement axée sur les pages, les écrans, les appels Web, etc. La réutilisation de la réutilisation du projet principal est un hareng rouge. Gardez les paquets séparés pour éviter cela, et parce qu'une fois que vous l'avez évité, il n'y a pas besoin de les avoir au même endroit.

Toutefois, assurez-vous que les tests système sont vérifiés sur le même contrôle de la version que le code.

Si vous ne faites pas d'intégration continue et de test / de déploiement, cela pourrait être une autre zone pour laquelle certains apprentissage vous aideront avec les fichiers de configuration. Ce problème ne disparaît pas simplement parce que vous avez des tests dans un projet séparé, malheureusement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top