Rails / Rspec: Тестирование сообщений delayed_job

Просто интересно, как проверить, что запросы actionmailer действительно отправляются в очередь delayed_job в rspec.

Я бы предположил это было довольно просто, но моя очередь delayed_job, похоже, не увеличивается. Код ниже:

Контроллер:

  def create
    @contact = Contact.new(params[:contact])
      if @contact.save
        contactmailer = ContactMailer
        contactmailer.delay.contact_message(@contact)
        redirect_to(contacts_url)
      else
        render :action => "new"
      end

Спецификация:

  it "queues mail when a contact is created" do
    expectedcount = Delayed::Job.count + 1
    Contact.stub(:new).with(mock_contact()) { mock_contact(:save => true) }
    post :create, :contact => mock_contact
    expectedcount.should eq(Delayed::Job.count)
  end

Как до, так и после вызова контроллера Delayed :: Job.count возвращает 0. Я пытался вывести условное выражение из контроллера, но я по-прежнему не удается увеличить счетчик отложенных заданий.

Любые предложения приветствуются - приветствую

24
задан PlankTon 15 June 2011 в 02:22
поделиться