2012-05-15 9 views
5

Actualmente, mi entorno de desarrollo local está configurado para poder enviar correos electrónicos reales. Debido a esto, las entregas se realizan y no se guarda nada en la tabla ActionMailer::Base.deliveries. ¿Es posible desactivar el envío de correo electrónico en pruebas de pepino? Si es así, ¿cuál es la sintaxis para hacer esto? ¿O hay una mejor manera de probar los correos electrónicos que se envían?¿Es posible desactivar los correos electrónicos de ActionMailer cuando se están realizando pruebas de pepino en el desarrollo?

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'] 
              } 
    ... 

Gracias

Respuesta

10
config.action_mailer.delivery_method = :test 

o

justo antes de las pruebas

ActionMailer::Base.delivery_method = :test 
Cuestiones relacionadas