Ho una classe actionmailer e un sovraccarico associato, funziona perfettamente. Nel mio test di unità (rails default minitest) tuttavia, il corpo dell'e-mail è vuoto. Perché?In Rails perché il mio corpo di posta è vuoto solo nel mio test?
mia classe mailer:
class TermsMailer < ApplicationMailer
default from: "[email protected]"
def notice_email(user,filename)
@user = user
@file = filename
mail(to: "[email protected]", subject: 'Data downloaded')
end
end
mio test:
require 'test_helper'
class TermsMailerTest < ActionMailer::TestCase
test "notice" do
email = TermsMailer.notice_email(users(:me),'file.ext').deliver_now
assert_not ActionMailer::Base.deliveries.empty?
assert_equal ['[email protected]'], email.from
assert_equal ['[email protected]'], email.to
assert_equal 'Data downloaded', email.subject
assert_equal 'arbitrary garbage for comparison', email.body.to_s
end
end
I punti di vista di questo mailer non sono vuoti, ei contenuti corretti sono infatti inviati in messaggi di posta elettronica. Quindi, perché il corpo dell'email è vuoto nel mio test?
Utilizzare 'email.body.encoded'. Vorrei postare questo come risposta, ma non ricordo perché ho dovuto apportare questo cambiamento. – messanjah