Skip to content

centaure/rspec-sidekiq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RSpec for Sidekiq RubyGems Code Climate Travis CI Gemnasium

Simple testing of Sidekiq jobs via a collection of matchers and common tasks

RubyGems | Code Climate | GitHub | Travis CI | Gemnasium | RubyDoc | Ruby Toolbox

Installation

gem "rspec-sidekiq"

There is no need to require "sidekiq/testing" when using rspec-sidekiq

Configuration

If you wish to modify the default behaviour, add the following to your spec_helper.rb file

RSpec::Sidekiq.configure do |config|
  # Clears all job queues before each example
  config.clear_all_enqueued_jobs = false # default => true
end

Matchers

be_processed_in

Describes the queue that the job should be processed in

it { should be_processed_in :download } } # one liner
expect(AwesomeJob).to be_processed_in :download # new expect syntax

be_retryable

Describes if the job retries when there is a failure in it's execution

it { should be_retryable true } } # one liner
expect(AwesomeJob).to be_retryable true # new expect syntax
# ...or alternatively specifiy the number of times it should be retried
it { should be_retryable 5 } } # one liner
expect(AwesomeJob).to be_retryable 5 # new expect syntax

be_unique (Only available when using sidekiq-middleware)

Describes if the job should be unique within it's queue

it { should be_unique } } # one liner
expect(AwesomeJob).to be_unique # new expect syntax

have_enqueued_job

Evaluates that there is an enqueued job with the specified arguments

expect(AwesomeJob).to have_enqueued_job("Awesome", true) # new expect syntax

have_enqueued_jobs

Evaluates the number of enqueued jobs for a specified job class

expect(AwesomeJob).to have_enqueued_jobs(1) # new expect syntax
# ...but you could just use
expect(AwesomeJob).to have(1).jobs
# ...or even
expect(AwesomeJob).to have(1).enqueued.jobs

Testing

bundle exec rspec spec

Contribute

Yes do it! If there's a feature missing that you'd love them get in on the action!

Issues/Pull Requests/Comments bring them on...

About

RSpec for Sidekiq

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%