1

我正在将 rails 3.0.11 应用程序迁移到 3.1.3。不知何故,这打破了使用 cucumber + selenium 设置时收到的电子邮件数量的email_spec测试。

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

编辑:对于特定版本,这是我的 Gemfile.lock(请注意,spork 不用于黄瓜功能)。

线索,有人吗?

4

1 回答 1

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 发送的所有电子邮件的数组。对于单元和功能测试最有用。

于 2012-01-28T00:54:24.493 回答