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のテストと同じで、「メールボックスの初期化」→「テストの実行」→「メールボックスがこうなっているはず!という確認」の流れになります。