[rails] Rails2.0.2のActionMailerのUNITテストでsetupメソッドが使えない件
require File.dirname(__FILE__) + '/../test_helper' class AgentTest < ActionMailer::TestCase tests Agent # replace this with your real tests def setup puts 'hoge' end end
こんな感じでsetupメソッドを使っても華麗にスルーされてしまう(teardownは使える)。Test::Unit::TestCaseじゃなくてActionMailer::TestCaseを使ってるのが原因っぽい。
でググる様にお伺いを立てるとすでにパッチがあった。
http://dev.rubyonrails.org/ticket/10406
でもパッチを適用してうんぬんとかすると環境の移行があった時に面倒だよね。
ソースを見てみるとRails 1.2時代にsetupメソッドでやっていたことをライブラリに吸収したみたいになっているので古きよきrails1.2時代のテストケースを使うことにした
require File.dirname(__FILE__) + '/../test_helper' class AgentTest < Test::Unit::TestCase def setup ActionMailer::Base.delivery_method = :test ActionMailer::Base.perform_deliveries = true ActionMailer::Base.deliveries = [] @expected = TMail::Mail.new @expected.set_content_type "text", "plain", { "charset" => 'iso-2022-jp' } @expected.mime_version = '1.0' end def test_truth assert true end end
こんな感じ。
まあそのうち2.0.3が出れば修正されるでしょう。