Ruby on rails 升级到Rails 6破坏了我的ActionMailer测试
我使用了5.2.3版,测试成功 已升级到6.0.0版。指定的Ruby on rails 升级到Rails 6破坏了我的ActionMailer测试,ruby-on-rails,ruby,unit-testing,actionmailer,mailgun,Ruby On Rails,Ruby,Unit Testing,Actionmailer,Mailgun,我使用了5.2.3版,测试成功 已升级到6.0.0版。指定的config.load_默认值为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)
config.load_默认值为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::maildiveryjob
也许是因为这个?那怎么解决呢?我试着将发送邮件的call方法包装起来
assert_emails 1 do
click_button "Send"
end
之后,
ActionMailer::Base.deliveries
正确填充。不会ActionMailer.const\u集(:DeliveryJob,::ActionMailer::MailDeliveryJob)
初始值设定项帮助中的某个地方?@AlekseiMatiushkin不幸没有。仍在使用MailDeliveryJob。[ActiveJob]已排队的ActionMailer::MailDeliveryJob