Ruby on rails 升级到Rails 6破坏了我的ActionMailer测试

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)

我使用了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)
      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