私の小さなアプリに新しくサインアップしたユーザーは、サイトにアクセスできるようになる前に、管理者 (私) によって承認される必要があります。私は、うまくafter_create :send_admin_email
機能するユーザーモデルを使用して、開発中にそのような電子メールを生成することに成功しました。私の問題は、テスト中に (FactoryGirl を使用して) 複数のユーザーを生成しており、作成した各テスト ユーザーが実際の電子メールを送信することです。テストを実行することは、1 月に糖蜜を注ぐようなもので、受信トレイに送信された何百ものメールを削除する必要があります。どうすればそれをオフにできますか?
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 が実際に電子メールを送信したことをテストする方法について、関連する質問や投稿を検索しました。
ご意見やご協力をよろしくお願いいたします。
補遺: Is it possible to turn off ActionMailer email when cucumber testing is going on development?にある同様の質問への回答に従ってください。メール送信の狂気を止めることができました。それでも、ActionMailer::Base.delivery_method = :test
いくつかの rspec ファイルに追加する必要がありました。これをグローバルにシャットダウンする方法はありますか? 何が起こっているのか考えている人はいますか?