2017-07-11 13 views
3

遅延ジョブからSidekiqに移行しています。私がすでに持っているいくつかの仕様がありますし、sidekiqと互換性があるようにそれらを変更したいと思います。遅延ジョブからSidekiqに移行

it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 } 

これは基本的に、MyJob DelayJobsがスケジュールされていないことをチェックします。サイドキックで同じ仕事を同じようにテストするにはどうすればいいですか?

答えて

0

私はDelayed::Jobについてよく分かりませんが、あなたのテストでは、キューのサイズが0の場合はテストしているようですね。もしそうなら、Sidekiqはあなたが使用RSpecのためのあなたの構成については、そのページの指示で、hereを行う、とすることができますいくつかのテストを説明する部分を持って、あなたがあれば、また

it {expect(MyJob.jobs.size).to be_eql 0 }

ような何かを行うことができますより多くのテストオプションが好きなら、this gemを見てください。

0

Sidekiqの場合、特定のジョブに独自のワーカーを設定する基本的な使用方法を使用している場合は、つまりMyJobWorkerです。次に、コードで、あなたはそうのようにそれを使用します。

it { expect(MyJobWorker.jobs.size).to be(0) } 

Sidekiqかなり良いdocs on testingがあります

MyJobWorker.perfom_async(id: 5) 

は、その後、あなたの仕様では労働者が雇用の数がいることを主張するのと同じくらい簡単です。

より具体的な回答を得るには、Sidekiqワーカーの設定方法とワーカーの使用方法に関する詳細なコードを含めてください。

関連する問題