我正在尝试在Rails应用程序中向ActionMailer添加一些日志记录/审核,并且正在尝试像这样在初始化器中插入deliver.action_mailer
钩子:
ActiveSupport::Notifications.subscribe 'deliver.action_mailer' do |_name, _start, _finish, _id, payload|
# Do stuff here
end
但是,当我运行测试并运行MyMailer.mailer_method.deliver!
时,挂钩永远不会被解雇。我在某处错过了一步吗?
答案 0 :(得分:0)
在测试环境中,电子邮件不会发送,但会存储在一个数组中
#告诉Action Mailer不要将电子邮件发送到现实世界。
#:test传递方法将已发送的电子邮件累积在
#ActionMailer :: Base.deliveries数组。
config.action_mailer.delivery_method =:test
您可以像这样编写测试:
subject { email.deliver_now }
it 'sends an e-mail' do
expect { subject }.to change { ActionMailer::Base.deliveries.count }.by(1)
end