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 Web Java Discussion :

Spring et EasyMock


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut Spring et EasyMock
    Bonjour.

    Je travaille actuellement avec Spring et EasyMock(pour simuler des fonctionnements de services).

    Nous avons ajouté une couche de sécurité avec Spring-scurity.

    Désormais, lors du replay sur les objets EasyMock, une erreur survient sur les objets dont des méthodes ont été sécurisées. Elles indiquent que ce n'est pas un mock. (proxy #30 is not a mock).

    Apparemment, le fait d'ajouter l'annotation fait qu'on ne peut plus mocker l'objet.

    Je ne peux pas passer par une implémentation spécifique de l'interface non plus, car j'ai besoin de caster mon objet pour lui allouer des valeurs pour l'exécution, et une erreur CastClassException apparaît.

    En résumé :

    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
    public Interface monInterface {
          void maMethode(); // ici si on utilise EasyMock c'est bon
    }
     
    public class TestI {
         @Test
         public test() {
              MonIterface inter = EasyMock.createMock(MonInterface.class);
              EasyMock.replay(inter); // ça fonctionne
        }
    }
     
     
     
    public Interface monInterface {
         @preAuthorize("toto") 
         void maMethode(); // ici si on utilise EasyMock ko
    }
     
    public class TestI {
         @Test
         public test() {
              MonIterface inter = EasyMock.createMock(MonInterface.class);
              EasyMock.replay(inter); // KO => Not a Mock
        }
    }
    Quelqu'un sait comment régler ou contourner le problème sans enlever la sécurité ?

  2. #2
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    En faisant beaucoup de recherche sur Internet, j'ai fini par trouver un moyen d'enregistrer les comportements voulus.

    Au moment du replay, reset et verify, on utilise l'objet contenu dans le proxy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Advised advised = (Advised) service;
          Service impl = (Service) advised
                .getTargetSource().getTarget();
    EasyMock.replay(impl);

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

Discussions similaires

  1. [Hibernate][Spring] Session Hibernate initialisée
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/08/2005, 13h07
  2. [Débutant][Framework] Spring vs Struts vs JSF
    Par Saloucious dans le forum JSF
    Réponses: 2
    Dernier message: 13/07/2005, 09h42
  3. Réponses: 5
    Dernier message: 25/05/2005, 21h16
  4. [Data] Développement avec la framework spring et ibatis
    Par ujoodha dans le forum Spring
    Réponses: 1
    Dernier message: 07/03/2005, 13h20

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