Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Sidekiq伪模式在测试时运行排队工作程序_Ruby On Rails_Ruby_Rspec_Sidekiq - Fatal编程技术网

Ruby on rails Sidekiq伪模式在测试时运行排队工作程序

Ruby on rails Sidekiq伪模式在测试时运行排队工作程序,ruby-on-rails,ruby,rspec,sidekiq,Ruby On Rails,Ruby,Rspec,Sidekiq,我目前面临着一个问题,即用sidekiq假模式测试sidekiq worker 我将worker作为对象运行,worker将创建自己,如果它满足某些条件,那么它就是同一个worker 问题是工人被推入作业数组,这将作业数组大小增加1,这是完美的!但它继续运行,并运行的工人以及 worker = AvailablePromoJobBulkNotificationWorker.new it "will create the next worker after the current worker p

我目前面临着一个问题,即用sidekiq假模式测试sidekiq worker

我将worker作为对象运行,worker将创建自己,如果它满足某些条件,那么它就是同一个worker

问题是工人被推入作业数组,这将作业数组大小增加1,这是完美的!但它继续运行,并运行的工人以及

worker = AvailablePromoJobBulkNotificationWorker.new
it "will create the next worker after the current worker performed." do
    expect { worker.perform(promo.id) }.to change(AvailablePromoJobBulkNotificationWorker.jobs, :size).by(1)
end

perform\u async
是用于创建作业的方法
perform
实际上会运行worker代码。

我知道
perform
会运行worker,但不应该
perform\u async
perform\u in
只会创建一个作业,而不会运行它?在worker内部,我正在调用
AvailablePromoJobBulkNotificationWorker.perform(10.minutes,promo.id)
。它将可用的PromojobBulkNotificationWorker.jobs.size增加1,但它会继续执行它我没有意识到这种行为。这是否意味着我不能做那样的事情?或者它应该可以很好地处理上述场景,而您以前从未遇到过这样的问题?