ruby-on-rails - RSpec 发送电子邮件(不存储在 ActionMailer::Base.deliveries 中) - 不知道为什么?

标签 ruby-on-rails email ruby-on-rails-3 rspec observer-pattern

我使用 rspec,当我运行 rake spec 时,用户邮件程序通过 smtp 发送电子邮件,而不是将电子邮件存储在 ActionMailer::Base.deliveries-array(由用户观察者调用)中...

你能给我一个提示为什么吗?

# Rails version
rails -v
=> Rails 3.0.1

# Ruby version with rvm (rvm version 1.0.16)
ruby -v
=> ruby 1.9.2p7 (2010-09-29 revision 29373) [x86_64-darwin10.4.0]

# Gemfile
gem "rspec-rails", ">= 2.0.1"

配置文件:
# config/environments/test.rb
MyApp::Application.configure do
  config.action_mailer.delivery_method = :test
  config.action_mailer.raise_delivery_errors = true
end

# spec/spec_helper.rb
...
ENV["RAILS_ENV"] ||= 'test'
...

# app/models/user_observer.rb
class UserObserver < ActiveRecord::Observer
  observe User

  def after_create(record)
    puts Rails.env
    # => "test"
    UserMailer.new_user_notification(record).deliver
    puts ActionMailer::Base.deliveries.inspect
    # => []
    # Sends it via smtp!
  end
end

最佳答案

我太愚蠢了……在我的 setup_mail.rb-initializer 中有“ActionMailer::Base.delivery_method = :smtp”……AAARGH……

关于ruby-on-rails - RSpec 发送电子邮件(不存储在 ActionMailer::Base.deliveries 中) - 不知道为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995994/

相关文章:

ruby-on-rails-3 - 访问控制允许来源问题

JavaScript 无法使用 Safari 加载到生产网站上

html - Outlook 在表格上更改边框 css

ruby-on-rails - 如何在使用 thin 时增加 Faye 中的最大连接数

email - nodejs、redis 和 mailparser 无法解析电子邮件

没有 JavaMail API 的 Java POP3 消息解析器

ruby-on-rails - Rails 3 - 需要帮助了解如何使用 WHERE IN (XXXXX) 进行查询

rubygems - 如何在 Rails 3 中重新加载所有 gem ?

ruby-on-rails - 如何修改rails 4中的bootstrap flash消息

ruby-on-rails - Rails 递归实体性能问题