1
私はActionMailerに配列を取るメソッドを持っていて、その配列の各項目に対して電子メールを送ります。正しいメールが送信されたかどうかを確認するために、ActionMailer::Base.deliveries
をテストしたいと思います。まず、送信されたメールの数を確認します:ActionMailer :: Base.deliveriesは最後のメールがN回
ActionMailer::Base.deliveries.size.should be == my_array.size
いいえ、アサーションは期待どおりに合格します。
しかし、ActionMailer::Base.deliveries
には、最後に送信された電子メールのすべてのクローンがあるようです。手動テストではActionMailer::Base.deliveries
が私に嘘をついていると確信しています。その固有の電子メールは実際に送信されたものであり、最後のものはN回送られたものではありません。私は何かを理解していないのですか? - .TOと.from属性う.dupまたは.cloneが動作しない
email = mail(:from => options[:from], :to => options[:to], :subject => options[:subject]) do |format|
format.text { render :text => options[:text] }
end
if Rails.env.test?
email = Marshal.load(Marshal.dump(email))
end
email.deliver
注:私はあまりにも(Railsの3.2.9)この奇妙な動作が発生し、この醜い回避策を使用して終了
私はモデルで2つのメールを送信していますが、それらは実際には異なっていますが、テストでは配送用配列に2つの同一のメールがあります: '' mail(to:@owner .email、subject:t( 'booking_canceled.action')、template_name: "booking_canceled_to_owner")。 メール(to:@ booker.email、件名:t( 'booking_canceled.action')、テンプレート名: "booking_canceled_to_booker")。deliver! '' ' – luigi7up