Currently, my local development environment is setup to be able to send out actual emails. Because of this, deliveries are being made, and nothing is kept in the ActionMailer::Base.deliveries
table. Is it possible to disable email sending in cucumber tests? If so, what is the syntax to do this? Or is there a better way to test emails being sent?
目前,我的本地开发环境设置为能够发送实际的电子邮件。因此,正在进行交付,并且ActionMailer :: Base.deliveries表中没有任何内容。是否可以在黄瓜测试中禁用电子邮件发送?如果是这样,这样做的语法是什么?或者有更好的方法来测试发送的电子邮件吗?
authentication_steps.rb:
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
应用程序/配置/ 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']
}
...
Thanks
谢谢
1 个解决方案
#1
10
config.action_mailer.delivery_method = :test
or
要么
just before tests
就在测试之前
ActionMailer::Base.delivery_method = :test
#1
10
config.action_mailer.delivery_method = :test
or
要么
just before tests
就在测试之前
ActionMailer::Base.delivery_method = :test