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

Tests et Performance Java Discussion :

Utilisation des Mock au sein d'une application Spring


Sujet :

Tests et Performance Java

  1. #21
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Tu ne peux pas instancier ton service avant d'avoir mocké ton dao.......... sinon tu as null en face........

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class UserServiceImplTest {
      private IUserDao userDao;
      private UserServiceImplWebService userServiceWebService;
     
      @Before
      public void setUp() {
        userDao = EasyMock.mock(IUserDao.class);
        userServiceWebService = new UserServiceImplWebService(userDao);
      }
     
    ...
    PS: ton contexte spring il sert à quoi? Tu n'as plus rien d'autowired!!!

  2. #22
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Si je passe par le constructeur côté test unitaire, côté application je doit faire comment? Car je passe par autowired

  3. #23
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Pas de soucis côté application, Spring et les autres savent faire de l'injection par constructeur

  4. #24
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Mais par contre, je laisse bien la déclaration de mes beans dans le application.-context.xml ?

  5. #25
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Non, aucun intérêt, tu n'utilises rien qui ne soit pas initialisé dans le test...

  6. #26
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Je parle pas de l'application context test mais de l'application context normal

  7. #27
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    alors oui, ces fichiers là restent... normal, puisque ce sont ceux qui décrivent le comportement normal de l'application, quelles classes instancier, etc.

  8. #28
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Donc je garde sa dans mes deux applications-context.xml et applications-context-test.xml
    <bean id="userDao"
    class="com.UserDaoImpl" />

  9. #29
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    oui, entre autres...

  10. #30
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Ton service n'a jamais invoqué la méthode attendue de ton dao...

  11. #31
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Je peux même enlever mes bean des fichiers xml, sa fonctionne

  12. #32
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    C'est bizarre là part contre

  13. #33
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Est-ce que ta question originale est résolue?

    Si oui, merci de mettre le sujet en résolu. Sinon, merci de nous dire ce que l'on peut faire d'autre pour ton problème de mock.

    Si tu as d'autres questions, sur d'autres sujets, merci d'ouvrir un nouveau topic (ou mieux, de lire la doc au préalable...)

  14. #34
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    La question de mock est résolu. Maintenant faut que je regarde l'assertion

  15. #35
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    1-
    Citation Envoyé par totot
    Je peux même enlever mes bean des fichiers xml, sa fonctionne
    Copie ce que tu as dans ton applicationContext.xml dans applicationContext-test.xml. Tu peux utiliser la même base ou utiliser une autre en modifiant les fichiers de configuration de test. Ainsi tu peux bien tester si les beans sont injectés correctement et les transactions sont bonnes.
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classpath*:/applicationContext-test.xml
    Je déconseille l'utilisation de classpath*, s'il ne trouve pas le fichier applicationContext-test.xml, tu n'auras pas d'erreur mais aucun chargement de context n'est fait, du coup t'auras des NullPointerException. Utilise classpath:applicationContext-test.xml, une exception est lancée s'il ne trouve pas le fichier applicationContext-test.xml.

    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private UserServiceImpl userService;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private UserServiceImplWebService userServiceWebService
    Qu'est ce que t'as réellement?

    4-
    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
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"classpath:applicationContext-test.xml"})
    @Transactional
    public class UserServiceImplTest {
     
    	@Autowired	
    	private UserServiceImpl userService;
     
    	@Autowired
    	private IUserDao userDao;
     
    	@Rollback
    	@Test
    	public void enregistrerUserDao() throws EnregistrerUserException {
     
    		Boolean retour;
     
    		UserEntitie userEntite = new UserEntitie();
    		userEntite.setNom("Nom");
    		userEntite.setPrenom("Prenom");
     
    		retour = userDao.enregistrerUser(userEntite);
    		Assert.assertTrue(retour);
     
    	}
     
    	@Rollback
    	@Test
    	public void enregistrerUserService() throws EnregistrerUserException {
     
    		Boolean retour;
     
    		User user = new User();
    		user.setNom("Nom");
    		user.setPrenom("Prenom");
     
    		retour = userService.enregistrerUser(user);
     		Assert.assertTrue(retour);
    	}
    }
    T'auras un erreur dans le test enregistrerUserService() puisque ton service n'est pas bon.

    A+.

  16. #36
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    mon service enregistrerUser est correct puisque mon application fonctionne.
    J'ai l'impression qu'il y a un problème avec les mocks que je veux retourner un type Boolean

  17. #37
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      @Transactional(readOnly=true)
      public boolean enregistrerUser(User User)
    Tu le met en ReadOnly et tu n'as pas d'erreur quand tu tentes d'écrire dans la base . Et puis, pourquoi utiliser un mock si tes interfaces sont toutes implémentées?

  18. #38
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    J'ai supprimer le readOnly

  19. #39
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Personne pour m'aider

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Utiliser deux SGBD au sein d'une même application
    Par franck2SK dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 10/11/2012, 22h24
  2. Réponses: 6
    Dernier message: 09/02/2011, 11h15
  3. Réponses: 2
    Dernier message: 02/06/2010, 15h28
  4. Réponses: 3
    Dernier message: 14/09/2006, 15h20
  5. Réponses: 7
    Dernier message: 27/10/2005, 15h24

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