IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Test Unitaire bean Spring


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 8
    Par défaut Test Unitaire bean Spring
    Bonjour,

    Comment feriez-vous pour tester cette classe ?
    Je sais faire des tests unitaires simples, mais là !!! dans un context spring .... je ne vois pas. en plus le constructeur est privée. Je ne peux même pas faire une new ...
    Le projet utilise spring, spring security, jsf, hibernate, maven
    et pour les tests : Unitils, junit4, mockito, easymock, powermock.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    /**
     * Formulaire pour les donnees du Header.
     * @author $Author: $
     * @version $Revision: $
     */
    @Component(HeaderForm.BEAN)
    @Scope("session")
    @CustomScope(CustomScopeType.CONNEXION)
    public final class HeaderForm implements Serializable {
     
      /** la Constante BEAN. */
      public static final String BEAN = "headerForm";
     
      /**
       * le serialVersionUID
       */
      private static final long serialVersionUID = -1420241458583308694L;
     
      /** DisplayName de l'utilisateur connecte */
      private String displayName;
     
      /** Unite d'affectation de l'utilisateur connecte */
      private String codeUnite;
     
      /**
       * Constructeur prive. Initialisation des attributs a partir du contexte de securite Spring.
       */
      private HeaderForm() {
        final Object vObject = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        if (vObject instanceof MonUser) {
          final MonUser vUser = (MonUser) vObject;
          this.displayName = vUser.getDetails().getDisplayName();
          this.codeUnite = vUser.getDetails().getCodeUnite();
          final FacesContext vCurrentCtx = FacesContext.getCurrentInstance();
          if (vCurrentCtx != null && vCurrentCtx.getExternalContext() != null) {
            Object vSession = vCurrentCtx.getExternalContext().getSession(false);
            if (vSession instanceof HttpSession) {
              vUser.getDetails().setSessionId(((HttpSession) vSession).getId());
            }
          }
        }
      }
     
      /**
       * Getter pour l'attribut displayName.
       * @return l'attribut displayName
       */
      public String getDisplayName() {
        return this.displayName;
      }
     
      /**
       * Getter de l'attribut uniteAffectationName
       * @return l'attribut uniteAffectationName
       */
      public String getCodeUnite() {
        return this.codeUnite;
      }
     
    }

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    En général, quand c'est possible, je fais un new et j'injecte les données que spring est censé fournir. Je ne sais pas pourquoi tu a mis un constructer privé Ca n'a pas de sens, et ça oblige spring à violenter le security manager pour pouvoir instancier malgré tout.


    Pour les beans trop liés à spring (dépendent d'une connexion jdbc, ou implémentent context aware), j'ai simplement une configuration spring dans mes répertoires de test, que j'instancie dans le setup mon unit test pour ensuite aller lui demander les bean en question via context.getBean(). Dans la mesure du possible, j'essaie que ces fichiers incluent des fichiers de prod pour être au plus près possible de l'état de fonctionnement réel.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 8
    Par défaut
    Merci pour les indications je vais regarder ca.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/03/2011, 16h24
  2. [Integration] Tests unitaires bouchonnés avec Spring
    Par Invité dans le forum Spring
    Réponses: 1
    Dernier message: 17/02/2011, 18h16
  3. [Integration] Spring Contexte BD Tests Unitaires
    Par yyusy dans le forum Spring
    Réponses: 3
    Dernier message: 26/07/2010, 16h15
  4. [Batch] Spring / Tests unitaires
    Par kilicool dans le forum Spring
    Réponses: 1
    Dernier message: 02/06/2010, 20h28
  5. Test unitaire d'un bean JSF
    Par open_source dans le forum JSF
    Réponses: 1
    Dernier message: 06/04/2009, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo