2012-05-15 9 views
5

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

Odpowiedz

10
config.action_mailer.delivery_method = :test 

lub

tuż przed testuje

ActionMailer::Base.delivery_method = :test 
Powiązane problemy