method
assert_enqueued_with
v6.0.0 -
Show latest stable
- Class:
ActiveJob::TestHelper
assert_enqueued_with(job: nil, args: nil, at: nil, queue: nil)public
Asserts that the job has been enqueued with the given arguments.
def test_assert_enqueued_with MyJob.perform_later(1,2,3) assert_enqueued_with(job: MyJob, args: [1,2,3], queue: 'low') MyJob.set(wait_until: Date.tomorrow.noon).perform_later assert_enqueued_with(job: MyJob, at: Date.tomorrow.noon) end
The args argument also accepts a proc which will get passed the actual job’s arguments. Your proc needs to return a boolean value determining if the job’s arguments matches your expectation. This is useful to check only for a subset of arguments.
def test_assert_enqueued_with expected_args = ->(job_args) do assert job_args.first.key?(:foo) end MyJob.perform_later(foo: 'bar', other_arg: 'No need to check in the test') assert_enqueued_with(job: MyJob, args: expected_args, queue: 'low') end
If a block is passed, asserts that the block will cause the job to be enqueued with the given arguments.
def test_assert_enqueued_with assert_enqueued_with(job: MyJob, args: [1,2,3], queue: 'low') do MyJob.perform_later(1,2,3) end assert_enqueued_with(job: MyJob, at: Date.tomorrow.noon) do MyJob.set(wait_until: Date.tomorrow.noon).perform_later end end