have_enqueued_job
マッチャー
have_enqueued_job
(または enqueue_job
としてもエイリアスされる)マッチャーは、指定された ActiveJob ジョブがエンキューされたかどうかをチェックするために使用されます。
背景
アクティブジョブが利用可能であることが前提です。
ジョブクラス名のチェック
"spec/jobs/upload_backups_job_spec.rb" という名前のファイルがあるとします。その中には以下のコードが含まれています。
require "rails_helper"
RSpec.describe UploadBackupsJob do
it "matches with enqueued job" do
ActiveJob::Base.queue_adapter = :test
expect {
UploadBackupsJob.perform_later
}.to have_enqueued_job(UploadBackupsJob)
end
end
rspec spec/jobs/upload_backups_job_spec.rb
を実行すると、
すべての例がパスするはずです。
ジョブへの渡された引数のチェック
"spec/jobs/upload_backups_job_spec.rb" という名前のファイルがあるとします。その中には以下のコードが含まれています。
require "rails_helper"
RSpec.describe UploadBackupsJob do
it "matches with enqueued job" do
ActiveJob::Base.queue_adapter = :test
expect {
UploadBackupsJob.perform_later("users-backup.txt", "products-backup.txt")
}.to have_enqueued_job.with("users-backup.txt", "products-backup.txt")
end
end
rspec spec/jobs/upload_backups_job_spec.rb
を実行すると、
すべての例がパスするはずです。