Précédent   Forum du club des développeurs et IT Pro > Java > EDI et OUTILS pour Java > Tests et Performance
Tests et Performance Vos questions sur les APIs et Outils de tests unitaires, d'intégration, de performance, profiling, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/10/2012, 16h44   #1
ifsera
Membre habitué
 
Inscription : septembre 2008
Messages : 256
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 256
Points : 115
Points : 115
Par défaut Tester Javamail, envoi de mail avec attachment

Salut,
je voudrais tester javamail avec junit. Je crois que c'est possible via des mock, mais le concept ne m'est pas familier.

Quelqu'un pourrait m'expliquer la demarche, ou me renvoyer vers un exemple. J'ai rien trouve de concluant pour l'instant,

Merci
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 16h51   #2
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 287
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 287
Points : 32 766
Points : 32 766
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
C'est possible avec des Mocks, mais je trouve dumbster
http://quintanasoft.com/dumbster/

plus pratique. C'est un serveur smtp à démarrer depuis ton test unitaire. Tu le lance, il répond au protocol smtp, tu fais ton test et puis tu récupère les mail dans ce serveur

Example du site:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class SimpleSmtpServerTest extends TestCase {
...
  public void testSend() {
    SimpleSmtpServer server = SimpleSmtpServer.start();
 
    try {
      // Submits an email using javamail to the email server listening on port 25 
      // (method not shown here). Replace this with a call to your app logic.
      sendMessage(25, "sender@here.com", "Test", "Test Body", "receiver@there.com");
    } catch(Exception e) {
      e.printStackTrace();
      fail("Unexpected exception: "+e);
    }
 
    server.stop();
 
    assertTrue(server.getReceivedEmailSize() == 1);
    Iterator emailIter = server.getReceivedEmail();
    SmtpMessage email = (SmtpMessage)emailIter.next();
    assertTrue(email.getHeaderValue("Subject").equals("Test"));
    assertTrue(email.getBody().equals("Test Body"));	
  }
...  
}
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/10/2012, 19h39   #3
Khaled.Noordin
Membre éprouvé
 
Avatar de Khaled.Noordin
 
Homme Khaled Noordin Abou Imran
Inscription : janvier 2005
Messages : 341
Détails du profil
Informations personnelles :
Nom : Homme Khaled Noordin Abou Imran
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : janvier 2005
Messages : 341
Points : 468
Points : 468
salut
pour ma part je me suis inspiré de ceci en utilisant mock-javamail
__________________
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément. Nicolas Boileau

Si c'est résolu, cliquez, cliquez, cliquez!!!!
Khaled.Noordin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2012, 03h57   #4
ifsera
Membre habitué
 
Inscription : septembre 2008
Messages : 256
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 256
Points : 115
Points : 115
ok merci, je vais regarder ce que cela donne.

dumbster a l'air sympa. Je connaissais pas.

ca le fait en bidouillant l'exemple de mock javamail
ifsera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2012, 18h29   #5
DrHelmut
Membre actif
 
Avatar de DrHelmut
 
Homme Hugo CAPOCCI
Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm
Inscription : octobre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Hugo CAPOCCI
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm

Informations forums :
Inscription : octobre 2005
Messages : 100
Points : 169
Points : 169
Bonjour,

je profite du sujet car j'essaie désespérément d'utiliser mock-javamail sans succès...

quoi que je fasse, je récupère une exception "javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;"

Y-a-t-il un pré-requis non détaillé dans l'exemple du touilleur ? Je trouve peu de doc sur ce framework, et aucun exemple ne semble fonctionner...

Je suis preneur de tout bout de code qui passe, pour info je suis en maven 3.04, j'ai testé mock-javamail v 1.7, et je suis en java 6...

Merci d'avance !
DrHelmut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2012, 18h49   #6
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 287
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 287
Points : 32 766
Points : 32 766
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Tu peux essayer de changer de port, sur les système unix les ports inférieurs sont réservés à l'admin et des firewall peuvent aussi les bloquer.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2012, 09h43   #7
DrHelmut
Membre actif
 
Avatar de DrHelmut
 
Homme Hugo CAPOCCI
Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm
Inscription : octobre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Hugo CAPOCCI
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm

Informations forums :
Inscription : octobre 2005
Messages : 100
Points : 169
Points : 169
Le problème ne vient pas du port dans la mesure ou - je ne l'avais pas précisé il est vrai - mes services d'envoi d'email fonctionnent parfaitement en mode connecté à un vrai smtp...

le debug me renvoit les informations suivantes :

Citation:
DEBUG: setDebug: JavaMail version 1.4.3
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
setter ehlo à false ne résoud rien, le problème ne viendrait pas de l'implémentation de javax.mail.Transport qui est retournée ? (com.sun.mail.smtp.SMTPTransport)
je devrais avoir org.jvnet.mock_javamail.MockTransport en lieu en place... le fichier "javamail.providers" fourni dans le jar de mock-javamail n'est clairement pas pris en compte mais je ne sais pas pourquoi... grrr

PS : Je suis sous win7 et j'ai bloqué le firewall de windaube
DrHelmut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2012, 10h45   #8
DrHelmut
Membre actif
 
Avatar de DrHelmut
 
Homme Hugo CAPOCCI
Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm
Inscription : octobre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Hugo CAPOCCI
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Java/J2EE - Intégrateur Filenet - expert ecm/bpm

Informations forums :
Inscription : octobre 2005
Messages : 100
Points : 169
Points : 169
Je sens bien le coup de la version de java.mail qui n'est pas prise en compte... ou le conflit maven relou à analyser..

Bref. J'ai cherché ailleurs du coup et j'ai trouvé "Wiser" qui est à peu près équivalent et qui fonctionne lui très bien sur mon projet :p

pour info : http://code.google.com/p/subethasmtp/wiki/Wiser

maven :
Citation:
<dependency>
<groupId>org.subethamail</groupId>
<artifactId>subethasmtp-wiser</artifactId>
<version>1.2</version>
<scope>test</scope>
</dependency>
DrHelmut est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h30.


 
 
 
 
Partenaires

Hébergement Web