method
assert_performed_with
v6.0.0 -
Show latest stable
-
0 notes -
Class: TestHelper
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (5)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (38)
- 6.1.3.1 (9)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
assert_performed_with(job: nil, args: nil, at: nil, queue: nil, &block)
public
Asserts that the job has been performed with the given arguments.
def test_assert_performed_with MyJob.perform_later(1,2,3) perform_enqueued_jobs assert_performed_with(job: MyJob, args: [1,2,3], queue: 'high') MyJob.set(wait_until: Date.tomorrow.noon).perform_later perform_enqueued_jobs assert_performed_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_performed_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') perform_enqueued_jobs assert_performed_with(job: MyJob, args: expected_args, queue: 'high') end
If a block is passed, that block performs all of the jobs that were enqueued throughout the duration of the block and asserts that the job has been performed with the given arguments in the block.
def test_assert_performed_with assert_performed_with(job: MyJob, args: [1,2,3], queue: 'high') do MyJob.perform_later(1,2,3) end assert_performed_with(job: MyJob, at: Date.tomorrow.noon) do MyJob.set(wait_until: Date.tomorrow.noon).perform_later end end