Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Erwin De Gier at 12:47 on Tuesday 28 January    Add 'Mocken van javax.mail.Session met Mock JavaMail' site to delicious  Add 'Mocken van javax.mail.Session met Mock JavaMail' site to technorati  Add 'Mocken van javax.mail.Session met Mock JavaMail' site to digg  Add 'Mocken van javax.mail.Session met Mock JavaMail' site to dzone

Voor het testen van het versturen van email via JavaMail zijn verschillende oplossingen, bijvoorbeeld zelf een mock versie schrijven of zelfs een dummy smtp server gebruiken. Het gebruik van het Mock JavaMail project maakt het echter wel heel makkelijk.

Voeg de volgende depedency toe via maven:

<dependency>     
    <groupId>org.jvnet.mock-javamail </groupId>
    <artifactId>mock-javamail </artifactId>
    <version>1.9</version>
    <scope>test</scope>
</dependency>

Stuur een email vanuit je code via JavaMail:

MimeMessage msg = new MimeMessage();
msg.setRecipients(TO,"mail@test.com");
Transport.send(msg);

Controleer vervolgens in je unit test of deze mail is verstuurd, met behulp van mock-javamail:

List inbox = Mailbox. get(EMAIL_TO);
              
//Controlleer of de email verzonden is
assertEquals(inbox.size(), 1);

Message msg = inbox.remove(0);
              
//Valideer het content type
assertTrue(msg .getContentType().startsWith("text/plain" ));
              
String body = (String) msg.getContent();
              
//Valideer de email body
assertTrue(body.contains( EMAIL_BODY));

//Valideer het onderwerp
assertEquals( EMAIL_SUBJECT, msg.getSubject());
              
//Valideer de to en from emailadressen
assertEquals( EMAIL_TO, msg .getAllRecipients()[0].toString());
assertEquals( EMAIL_FROM, msg.getFrom()[0].toString());

Mock JavaMail gebruikt het plugin mechanisme van JavaMail. Op het moment dat de mock-javamail jar op het classpath staat, dan wordt er een in-memory mailbox gebruikt voor het versturen van de mail.


© 2019 Java Competence Network. All Rights Reserved.