在Rails 3.0.11上使用email_spec中断的电子邮件传递测试 - > 3.1.3

时间:2012-01-22 15:51:30

标签: ruby-on-rails selenium cucumber email-spec

我正在将rails 3.0.11应用程序迁移到3.1.3。不知何故,这会对使用黄瓜+硒设置时收到的电子邮件数量进行email_spec测试。

config.action_mailer.delivery_method = :test,也尝试使用:cache:file投放方式。无论如何,ActionMailer::Base.deliveries都是空的,即使根据日志,电子邮件也会被发送。然后再回到rails 3.0.11,一切都恢复正常。

编辑:对于特定版本,here is my Gemfile.lock(请注意,黄瓜功能不使用spork)。

线索,有人吗?

1 个答案:

答案 0 :(得分:0)

尝试设置:

ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.deliveries.clear

在你的features/support/env.rb或更简单的某处,这是一个错误,在这里我们可以看到有类似问题的人:https://github.com/bmabey/email-spec/issues?sort=created&direction=desc&state=open&page=1

请注意不要因某种原因发送真实的电子邮件(错误等)

delivery_method - 定义投放方式。可能的值有:smtp(默认值),: sendmail,:test和:file。或者您可以提供自定义的交付方法对象,例如。 MyOwnDeliveryMethodClass.new。请参阅您需要为自定义传递代理实现的接口上的Mail gem文档。

perform_deliveries - 确定在邮件消息或Action Mailer方法上调用.deliver时是否实际从Action Mailer发送电子邮件。默认情况下处于启用状态,但可以关闭它以帮助进行功能测试。

deliveries - 使用delivery_method:test保存通过Action Mailer发送的所有电子邮件的数组。最适用于单元和功能测试。