我的小应用程序的新注册用户必须得到管理员(我)的批准才能访问该站点。我已经成功地在我的用户模型中生成了这样的电子邮件after_create :send_admin_email
,效果很好。我的问题是我在测试期间生成了多个用户(使用 FactoryGirl),并且创建的每个测试用户都会发送一封真实的电子邮件。运行我的测试就像在一月份倒糖蜜,我必须删除发送到我收件箱的数百封电子邮件。我该如何关闭它?
Rails Guides中的Action Mailer Basics告诉我“默认情况下,Action Mailer 不会在测试环境中发送电子邮件。它们只是添加到 ActionMailer::Base.deliveries 数组中。”
此外,在config/environments/test.rb
我有:
config.action_mailer.delivery_method = :test
除此之外,config/environment.rb
还有:
# Configuration for using SendGrid on Heroku
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => 'app[my app number]@heroku.com',
:password => '[something super secret]',
:domain => '[let's get this party started!.com]',
:enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp
我确定我缺少一些简单而基本的东西。我已经四处搜索,相关的问题和帖子涉及如何测试 ActionMailer 实际发送的电子邮件。
提前对任何想法或帮助表示谦卑的感谢。
附录:以下对类似问题的回答是否可以在开发中进行黄瓜测试时关闭 ActionMailer 电子邮件?我能够阻止电子邮件发送的疯狂。不过,我不得不添加ActionMailer::Base.delivery_method = :test
到几个 rspec 文件。有没有办法可以在全球范围内关闭它?有人对发生的事情有任何想法吗?