2012-04-02 13 views
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)この奇妙な動作が発生し、この醜い回避策を使用して終了

+0

私はモデルで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

答えて

関連する問題