Resque作业未根据resque_spec排队,但在作业列表中可用

时间:2014-08-20 13:26:56

标签: ruby rspec resque

我在rspec中进行了以下测试

it "should add the item to the resque queue" do
    post :run, id: report.id
    resque_job = Resque.peek(:default_queue)
    expect(resque_job).to be_present
    puts "Job is #{resque_job}"
    expect(ReportMapWorker).to have_queue_size_of(1)
    expect(ReportMapWorker).to have_queued(report.id).in(:default_queue)
end

puts语句打印出以下内容:

Job is [{"class"=>"ReportMapWorker", "args"=>["1537"]}]

最终的期望失败了。关于我哪里出错的任何想法或建议?

由于

1 个答案:

答案 0 :(得分:1)

错误是id作为字符串被添加到队列中,所以当期望在队列上期待[1537]时,它应该期待[“1537”]。将代码断言更新为:

expect(ReportMapWorker).to have_queued(report.id.to_s).in(:default_queue)

工作,期望过去了。