【发布时间】:2014-03-06 00:17:59
【问题描述】:
我有一个 Resque 工作,我正在尝试使用 rspec 进行测试。这份工作看起来像:
class ImporterJob
def perform
job_key = options['test_key']
user = options['user']
end
我正在使用 Resque 状态,所以我使用 create 方法来创建作业,如下所示:
ImporterJob.create({key:'test_key',user: 2})
如果我尝试在 rspec 测试中以相同的方式创建作业,则选项似乎无法完成作业。例如,当我在user = options['user'] 之后插入 binding.pry 时,选项哈希为空。
我的 rspec 测试如下所示:
describe ImporterJob do
context 'create' do
let(:import_options) {
{
'import_key' => 'test_key',
'user' => 1,
'model' => 'Test',
'another_flag' => nil
}
}
before(:all) do
Resque.redis.set('test_key',csv_file_location('data.csv'))
end
it 'validates and imports csv data' do
ImporterJob.create(import_options)
end
end
end
【问题讨论】:
-
如果你用
symbols而不是字符串传递Hash会发生什么?:import_key => 'test_key' -
如果我传递一个哈希,它会出现同样的问题。
-
是的,我的意思是符号。对于那个很抱歉。我实际上意识到了这个问题,但仍然不确定如何解决它。作业正在排队,但没有工人来运行它们。测试中有没有办法让工人开始工作?
标签: ruby-on-rails rspec resque resque-status