script/generate mailerでgenerateされるテストコードの@expectedはTMailのインスタンスらしく、生すぎなことがあります。
というわけで、お手軽にテストする方法をぐぐりました。

via http://sablog.com/archives/2006/03/14/how-to-test-actionmailer-in-ruby-on-rails

rails>>
class SampleMailerTest < ActionMailer::TestCase
tests SampleMailer

def setup
# テスト時に配送したメールの配列を保存する。
ActionMailer::Base.deliveries = []
end

def test_welcome
to = "satoko@s21g.com"
sender = to
sender_name = "satoko"

SampleMailer.deliver_welcome(to, sender, sender_name)
assert !ActionMailer::Base.deliveries.empty?

sent = ActionMailer::Base.deliveries.first
assert_equal [to], sent.to
assert_equal "expected title", sent.subject
assert sent.body =~ /^Recommended by #{sender_name}. Enjoy!$/

end
end
<<--

###Refs
http://wota.jp/ac/?date=20050731

posted by satoko satoko on Tue 22 Apr 2008 at 16:34 with 0 comments