Obecnie moje lokalne środowisko programistyczne jest skonfigurowane tak, aby móc wysyłać rzeczywiste wiadomości e-mail. Z tego powodu realizowane są dostawy i nic nie jest przechowywane w tabeli ActionMailer::Base.deliveries
. Czy można wyłączyć wysyłanie e-maili w testach ogórka? Jeśli tak, jaka jest składnia, aby to zrobić? A może jest lepszy sposób na testowanie wysyłanych e-maili?Czy można wyłączyć wiadomości e-mail od ActionMailer, gdy testowanie ogórka odbywa się w fazie rozwoju?
authentication_steps.rb:
Then /^I should receive a confirmation email$/ do
email = ActionMailer::Base.deliveries.last
email.subject.should == "Welcome to our website!"
end
app/config/development.rb
...
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
# Setup for local testing of emails using gmail test account
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { :address => 'smtp.sendgrid.net',
:port => 587,
:domain => ENV['MAIL_DOMAIN'],
:authentication => 'plain',
:enable_starttls_auto => true,
:user_name => ENV['MAIL_USERNAME'],
:password => ENV['MAIL_PASSWORD']
}
...
Dzięki