0
私はユーザーがコメントを残してから、通知がrailsメーラー経由で送信される機能テストを作成しようとしています。私がメーラーの電話番号を変更して.deliver_now
に変更すると、すべてがここで働いていますが、私はそれを本番環境では望んでいません。私は、非同期メールの配信をテストすることができなければならず、テストシナリオで今すぐ配信するようにメーラを強制する必要があります。レールRSpec機能テストで非同期メーラーをテストするにはどうすればよいですか?
login_as campaign_owner
visit campaign_path campaign
fill_in 'Comment', with: 'Foo'
click_on 'Submit'
expect(page).to have_content I18n.t('comments.create.success')
expect(campaign.comments.count).to eq 1
expect(UserMailer.deliveries.count { |d| d.to == [campaign_watcher.email]}).to eq 1
私のコードでメーラーを呼び出すときに電子メールを送信していないことが判明したので、 'deliver_later'を追加すると仕様がパスされます。 'deliver_now'または' deliver_later'を呼び出さない限り、メールはまったく送信されません。 – HarlemSquirrel