blogjava's web log

blogjava's web log
...

[推荐]系统发邮件测试 Dumbster

  当我们系统要用Junit 测试批量发邮件功能的时候,
既要测试 这功能是否正常。
但又不能真正意义上的把邮件发出去。

要不你在测试的时候 那么多垃圾邮件给用户 用户肯定要烦恼了。



问题解决:


在这里 http://quintanasoft.com/dumbster/  有个专门 测试 发Email 开源类库。

详细说明点击该网站查看。

一个示例


package com.dumbster.mytest;

import junit.framework.TestCase;

import com.dumbster.smtp.*;

import junit.framework.TestCase;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
import java.util.Properties;
import java.util.Date;
import java.util.Iterator;
import java.util.*;

/**
 * 
@author junmy
 *
 
*/


public class SmtpServerTest extends TestCase {
     
private SimpleSmtpServer server;
     
private static final int SMTP_PORT=1082;
        
public SmtpServerTest(String s)
        
{
            
super(s);
        }

        
        
protected void setUp() throws Exception
        
{
            
super.setUp();
        
            server
=SimpleSmtpServer.start(SMTP_PORT);
        }

        
        
protected void tearDown() throws Exception
        
{
            
super.tearDown();
                server.stop();
        }

        
        
public void testSendBacthMail()
        
{
              String From 
= "sender@here.com";
              String Subject 
= "Test";
              String body 
= "Test Body";

            
//TODO:
            
//  dal.BacthMail()
            
//得到后台数据库中所有用户得email
              
            List
<String> list=new ArrayList<String>();
    
            
//list=dal.BacthMail();
            Properties mailProps = new Properties();
            mailProps.setProperty(
"mail.smtp.host""localhost");
            mailProps.setProperty(
"mail.smtp.port""" + SMTP_PORT);
            mailProps.setProperty(
"mail.smtp.sendpartial""true");
            Session session 
= Session.getInstance(mailProps, null);
            
            
for(String strto:list)
            
{
                
try
                
{
                  MimeMessage msg 
= new MimeMessage(session);
                    msg.setFrom(
new InternetAddress(From));
                    msg.setSubject(Subject);
                    msg.setSentDate(
new Date());
                    msg.setText(body);
                    System.out.println(
"emailList:"+strto);
                    msg.setRecipient(Message.RecipientType.TO, 
new InternetAddress(strto));
                    Transport.send(msg);
                }

                
catch (MessagingException e) {
                    
// TODO 自动生成 catch 块
                    e.printStackTrace();
                    fail(
"Exception:"+e);
                }
        
            }

            assertEquals(list.size(), server.getReceivedEmailSize());
          
            Iterator emailIter 
= server.getReceivedEmail();
            
for(int i=0;i<server.getReceivedEmailSize();i++)
            
{
                SmtpMessage email 
= (SmtpMessage) emailIter.next();
                assertEquals(body,email.getBody());
                assertEquals(Subject,email.getHeaderValue(
"Subject"));
                assertEquals(list.get(i),email.getHeaderValue(
"To"));
            }

            
            
        }
        

}

详细说明请下载源代码查阅
http://quintanasoft.com/dumbster/
  http://sourceforge.net/projects/dumbster

Dot Net 版本

 http://ndumbster.sourceforge.net/

dot net 下示例

Nunit Test Batch Email


希望对你有用!

posted on 2006-10-30 12:57 record java and net 阅读(1328) 评论(1)  编辑  收藏 所属分类: java

评论

# re: [推荐]系统发邮件测试 Dumbster 2006-10-31 10:13 inlife.cn

顶一个。欢迎 北京的朋友访问 http://www.inlife.cn
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

常用链接

留言簿(44)

新闻档案

2.动态语言

3.工具箱

9.文档教程

友情链接

搜索

最新评论