2
我正在嘗試爲延遲作業編寫rspec。rspec for Delayed_job
目前我使用的是延遲的工作如下:
class IncomingMailsController < ApplicationController
...
MailingJob.new(@incoming_mail.id).perform
...
end
然後在/lib/mailing_job.rb:
如何測試與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
想法?謝謝