ActionMailer :: Base.deliveries массив не заполняется - PullRequest
2 голосов
/ 13 января 2012

Я пытаюсь запустить тест rspec. Вы можете увидеть большую часть этого кода здесь .

Может быть, это актуально: CoRegEmailWorker.perform содержит это:

ProvisionalUser.where("unsubscribed = false AND disabled = false AND (email_sent_count < ? OR email_sent_count is NULL) AND (last_email_sent <= ? OR last_email_sent IS NULL) AND sign_up_date IS NULL",
                      ProvisionalUser::EMAIL_COUNT_LIMIT, email_sending_interval.hours.ago).
                each{ |user|
  begin
    user.send_email
  rescue Exception => ex
    logger.error ex
  end
}

и ProvisionalUser имеет этот метод:

* * 1010

Наконец, ProvisionalUserNotifier наследуется от MailGunNotifier, который наследуется от ActionMailer.

Проблема, с которой я столкнулся, состоит в том, что массив поставок не заполняется. В моем `config / environment / test.rb '. У меня есть это:

config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :test

Я не уверен, что еще здесь нужно.

Я даже зашел так далеко, чтобы попробовать это:

require "spec_helper"
require "action_mailer"

describe "unsubscribe functionality" do

  pu1 = ProvisionalUser.new
  pu1.email = 'contact_me@test.com'
  pu1.partner = 'partner'
  pu1.first_name = 'joe'
  pu1.save!

  before(:each) do
    ActionMailer::Base.delivery_method = :test
    ActionMailer::Base.perform_deliveries = true
    ActionMailer::Base.deliveries = []
  end

  it "should send emails to subscribed users only" do
    unsubscribed_user = FactoryGirl.build(:unsubscribed_user)
    unsubscribed_user.save!

    subscribed_user = FactoryGirl.create(:subscribed_user)
    CoRegEmailWorker.perform
    ActionMailer::Base.deliveries.length.should == 1
    ActionMailer::Base.deliveries.first.email.should =~ subscribed_user.email
    #sent.first.email.should_not =~ unsubscribed_user.email
    #sent.first.email.should =~ subscribed_user.email
  end

  def sent
    ActionMailer::Base.deliveries
  end

end

1 Ответ

0 голосов
/ 15 января 2012

вау. это было действительно раздражающим. поскольку исключение было съедено, я не увидел, что мне не хватает необходимого значения для темы письма для работы.

...