使用 RSpec 和 Action Mailer 进行测试:清除排队的电子邮件?

Testing with RSpec and Action Mailer: Clearing enqueued emails?

Active Job Test Helper 提供了有用的方法,clear_enqueued_jobs。

Action Mailer 是否有清除排队电子邮件的等效项?

是的,您可以配置 rspec 在每次测试前清除邮件程序,例如:

RSpec.configure do |config|
  config.before(:each) do
    ActionMailer::Base.deliveries.clear
  end
end

对于排队邮件,Active Job Test Helper 包含在 ActiveMailer::TestHelper 中,因此您应该也可以使用 clear_enqueued_jobs 方法。

来源:https://github.com/rails/rails/blob/94b5cd3a20edadd6f6b8cf0bdf1a4d4919df86cb/actionmailer/lib/action_mailer/test_helper.rb#L9