呼び出しで指定されているように、 sidekiq が X 秒でジョブを適切に実行する (または X 秒で実行されるジョブをキューに入れる) かどうかをテストする方法があるのだろうかperform_in。
私が知る限り、ドキュメントはこれを許可するモードについて言及していません。モードでは、ジョブがキューに直接追加され、呼び出しfake時にすぐに実行されるようです。drain
呼び出しで指定されているように、 sidekiq が X 秒でジョブを適切に実行する (または X 秒で実行されるジョブをキューに入れる) かどうかをテストする方法があるのだろうかperform_in。
私が知る限り、ドキュメントはこれを許可するモードについて言及していません。モードでは、ジョブがキューに直接追加され、呼び出しfake時にすぐに実行されるようです。drain
fakeモードの場合は、Workers ジョブにアクセスできますMyWorker.jobs。
ジョブをスケジュールした場合、実行時間を (浮動小数点として)表示perform_inするフィールドが必要です。at私は次の行に沿ってrspecテストを書きました
subject { MyWorker.jobs.first }
it 'is scheduled in 1 minute' do
span = subject['at'] - Time.now.to_f
expect(span.round).to eq 60
end
それが役立つことを願っています!