jamesとozacc-mail library(OML) 1.2-rc7を使ったメールのテスト
Windowsで動くウェブ開発専用のSMTP・POPサーバ を参考にメール配信のテストを書いて見ました。この方法だとDBのテストと同じ感覚でテストができました。
1.上記のエントリーに従って、jamesをセットアップする
2.テストケースのsetUpメソッドで、受信するメールボックスをクリアしておく。OMLのFetchMailImplクラスを使うと簡単にできます。
FetchMailImpl fetchMail = new FetchMailImpl();
fetchMail.setHost("default.local");
fetchMail.setPort(1110);
fetchMail.setUsername(username);
fetchMail.setPassword(password);
ReceivedMail[] mails = fetchMail.getMails(true); // メールの受信とメールボックスからの削除
3.テストを実行します。
4.OMLのFetchMailImplを使ってメールを受信して、件名や本文のアサートを行います。これはS2TestCase#assertBeanListEqualsを使ってエクセルと比較すれば簡単です。
基本はDBのテストと同じで、「メールボックスの初期化」→「テストの実行」→「メールボックスがこうなっているはず!という確認」の流れになります。
ozacc-mail library(OML) 1.2への要望
SendMailImplクラスを使ってメール送信後に、引数で渡したMailオブジェクトからMessage-Idが取れるとうれしいなぁ。
今は以下のコードでなんとか取得しています。
*** SendMailImpl.java --- SendMailImpl2.java *************** *** 108,113 **** --- 108,116 ---- // MimeMessage?????? MimeMessage message = createMimeMessage(session); + if (isMessageIdCustomized()) { + mail.addHeader("Message-Id", ( (OMLMimeMessage)message).getMessageId()); + } MimeMessageBuilder builder = new MimeMessageBuilder(message); try { builder.buildMimeMessage(mail);
良書「創るJava」の中でも最高に便利なページ
前にも書きましたが、http://book.mycom.co.jp/support/bookmook/tukurujava/の一番最後のURL取得メソッドの図。
今日もまた使わせてもらっちゃいました。この図を3回参照した人は買おう!