Я пытаюсь написать rspec для отложенного задания.
В настоящее время я использую отложенное задание следующим образом:
class IncomingMailsController < ApplicationController
...
MailingJob.new(@incoming_mail.id).perform
...
end
Затем в /lib/mailing_job.rb:
class MailingJob < Struct.new(:mailing_id)
def perform
.......
Как я могу проверить это с помощью rspec?Прямо сейчас у меня есть:
/ spec / lib / mailing_job / mailingjob_spec.rb
require 'spec_helper'
describe MailingJob do
include DelayedJobSpecHelper
it "should have been worked on if I do something that queues jobs" do
@incoming_mail = IncomingMail.create(.........)
MailingJob.new(@incoming_mail.id).perform
#IncomingMail.method_that_queues_jobs
work_off
MailingJob.should be_worked_on
end
end
/ spec / lib / delayed_job_spec_helper.rb
module DelayedJobSpecHelper
# http://erikonrails.snowedin.net/?p=230
def work_off
Delayed::Job.all.each do |job|
job.payload_object.perform
job.destroy
end
end
end
Но это ошибки с:
1) MailingJob should have been worked on if I do something that queues jobs
Failure/Error: MailingJob.should be_worked_on
NoMethodError:
undefined method `worked_on?' for MailingJob:Class
# ./spec/lib/mailing_job/mailingjob_spec.rb:19
Идеи?Спасибо