升级到 Rails 6 破坏了我的 ActionMailer 测试
Upgrade to Rails 6 broke my ActionMailer test
我用的是5.2.3版本,测试成功
升级到版本 6.0.0。指定 config.load_defaults 6.0
和 config.autoloader = :classic
.
因此,所有使用 ActionMailer::Base
的测试都会失败。
示例:
test "send email" do
VCR.use_cassette('mailgun api key') do
ActionMailer::Base.deliveries.clear
item = items(:saved)
visit item_path(item)
click_button "Send"
assert_equal 1, ActionMailer::Base.deliveries.count
end
end
错误:
Expected: 1
Actual: 0
我注意到 ActionMailer::DeliveryJob
更改为 ActionMailer::MailDeliveryJob
。
可能是因为这个问题?那怎么解决呢?
我试过把发送邮件的调用方法包装在
assert_emails 1 do
click_button "Send"
end
之后,ActionMailer::Base.deliveries
正确填充。
我用的是5.2.3版本,测试成功
升级到版本 6.0.0。指定 config.load_defaults 6.0
和 config.autoloader = :classic
.
因此,所有使用 ActionMailer::Base
的测试都会失败。
示例:
test "send email" do
VCR.use_cassette('mailgun api key') do
ActionMailer::Base.deliveries.clear
item = items(:saved)
visit item_path(item)
click_button "Send"
assert_equal 1, ActionMailer::Base.deliveries.count
end
end
错误:
Expected: 1
Actual: 0
我注意到 ActionMailer::DeliveryJob
更改为 ActionMailer::MailDeliveryJob
。
可能是因为这个问题?那怎么解决呢?
我试过把发送邮件的调用方法包装在
assert_emails 1 do
click_button "Send"
end
之后,ActionMailer::Base.deliveries
正确填充。