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 :

[Testing] Easymock : Remplacement d'une dépendance [Integration]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut [Testing] Easymock : Remplacement d'une dépendance
    Hello,

    Je souhaite lors de tests d'intégrations mocker certains collaborateurs de ma classe à tester.

    Jusqu'à présent, pour ce genre de problème, je créait une instance de la classe à tester et je settais les mocks.

    Mais dans ce cas (il s'agit de tests d'intégration), je souhaite que Spring injecte certaines dépendances que je ne souhaite pas mocker.

    Je n'ai pas trouvé de littérature sur la bonne voie à suivre (à part un fichier Spring pour les tests mais ça ne m'emballe guère) ? Si quelqu'un a déjà traité ce problème, toute aide est la bienvenue.

    Merci

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Je ne sais pas si c'est la meilleur solution mais je pense que l'utilisation d'un fichier de config pour les test est tout de même une bonne solution.

    De maniere generale, il est d'ailleurs conseillé d'avoir plusieurs fichier de configuration :

    un fichier de configuration de la couche service
    un fichier de configuration de la couche dao
    un fichier de configuration de la couche datasource

    De la, si l'on desire tester la couche service avec des mock dao, il suffit de charger le fichier de la couche service avec le fichier Mock de la couche Dao.
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Merci pour ta réponse

    Dans mon cas, je souhaite mocker la partie DAO mais également certains services et en garder d'autres.

    Donc ok pour la partie DAO. Par contre pour les services...

    Il n'y a pas moyen de modifier un bean créé par Spring par après de manière programmatique ?

  4. #4
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Ca dépends ce que tu entends par modifier :-)

    Si tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonBean bean = applicationContext.getBean("monBean");
    rien ne t'empeche de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bean.setServiceA(monServiceMock);
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Citation Envoyé par Hikage Voir le message
    Ca dépends ce que tu entends par modifier :-)
    Par modifier, j'entend ce que tu proposes

    Mais je ne peux pas faire ça, car Spring ne me renvoit pas directement ma classe d'implémentation mais bien une classe "proxyée".
    Du coup, je ne peux pas accéder aux setters pour injecter mes mocks car je ne peux pas caster vers la classe d'implémentation (qui a les setters).

    Je ne veux pas déclarer les setters au niveau de l'interface bien entendu.

  6. #6
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Je n'avais effectivement pas penser à cela.

    A première vue, je ne vois pas d'autres solutions que d'avoir un fichier pour tes test alors
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définition d'une dépendance fonctionnelle élémentaire ?
    Par Didine1801 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 30/11/2010, 16h59
  2. Forcer une dépendance cyclique pour les tests unitaire
    Par jamesleouf dans le forum Maven
    Réponses: 5
    Dernier message: 18/05/2010, 15h37
  3. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38
  4. trouver et remplacer dans une table paradox
    Par Yepazix dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/09/2004, 02h19
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

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