Method: ActiveJob::TestHelper#assert_no_performed_jobs
- Defined in:
- activejob/lib/active_job/test_helper.rb
#assert_no_performed_jobs(only: nil, except: nil, queue: nil, &block) ⇒ Object
Asserts that no jobs have been performed.
def test_jobs
assert_no_performed_jobs
perform_enqueued_jobs do
HelloJob.perform_later('matthew')
assert_performed_jobs 1
end
end
If a block is passed, asserts that the block will not cause any job to be performed.
def test_jobs_again
assert_no_performed_jobs do
# No job should be performed from this block
end
end
The block form supports filtering. If the :only
option is specified, then only the listed job(s) will not be performed.
def test_no_logging
assert_no_performed_jobs only: LoggingJob do
HelloJob.perform_later('jeremy')
end
end
Also if the :except
option is specified, then the job(s) except specific class will not be performed.
def test_no_logging
assert_no_performed_jobs except: HelloJob do
HelloJob.perform_later('jeremy')
end
end
:only
and :except
options accept Class, Array of Class, or Proc. When passed a Proc, an instance of the job will be passed as argument.
If the :queue
option is specified, then only the job(s) enqueued to a specific queue will not be performed.
def test_assert_no_performed_jobs_with_queue_option
assert_no_performed_jobs queue: :some_queue do
HelloJob.set(queue: :other_queue).perform_later("jeremy")
end
end
Note: This assertion is simply a shortcut for:
assert_performed_jobs 0, &block
348 349 350 351 352 |
# File 'activejob/lib/active_job/test_helper.rb', line 348 def assert_no_performed_jobs(only: nil, except: nil, queue: nil, &block) require_active_job_test_adapter!("assert_no_performed_jobs") assert_performed_jobs 0, only: only, except: except, queue: queue, &block end |