1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00
mperham--sidekiq/lib/sidekiq/testing/inline.rb
Pan Thomakos c4e6fae37c Added inline testing functionality.
Allows sidekiq jobs to run inline in test mode without having to modify
the production code. In other words production code can still call the
`perform_async` method and tests can still verify that functionality is
run inline.
2012-05-02 11:04:29 -07:00

37 lines
869 B
Ruby

module Sidekiq
module Worker
##
# The Sidekiq inline infrastructure overrides the perform_async so that it
# actually calls perform instead. This allows workers to be run inline in a
# testing environment.
#
# This is similar to `Resque.inline = true` functionality.
#
# Example:
#
# require 'sidekiq/testing/inline'
#
# $external_variable = 0
#
# class ExternalWorker
# include Sidekiq::Worker
#
# def perform
# $external_variable = 1
# end
# end
#
# assert_equal 0, $external_variable
# ExternalWorker.perform_async
# assert_equal 1, $external_variable
#
module ClassMethods
alias_method :perform_async_old, :perform_async
def perform_async(*args)
new.perform(*args)
true
end
end
end
end