How to test or stub Sidekiq::Batch in RSPEC?
up vote
0
down vote
favorite
How to test or stub Sidekiq::Batch in RSPEC ?
Please see got error in code below.
rails_helper
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'sidekiq/testing'
Sidekiq::Testing.fake!
Worker to be tested...
class TestWorker
def perform(id)
batch = Sidekiq::Batch.new
batch.description = "Sample"
batch.on(:complete, TestWorker, 'id' => 123, 'last_checked' => Time.now)
# => *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fd8b728a1d0>
batch.jobs do # => NoMethodError: undefined method `jobs' for #<Batch:0x007f936c9ebf68>
Sidekiq::Client.push({
'class' => TestWorker,
'queue' => q,
'args' => [id, batch.bid, 1, Time.now]
})
end
end
end
class TestWorkerCallbacks
def complete(status, options)
#simple record update here
end
end
spec/workers/test_worker_spec.rb
require 'rails_helper'
RSpec.describe TestWorker, type: :worker do
context "Sidekiq Worker" do
it "should respond to #perform" do
expect(TestWorker.new).to respond_to(:perform)
end
describe "perform" do
before do
Sidekiq::Worker.clear_all
end
it "updates order records" do
expect(TestWorker.jobs.size).to eq(0)
TestWorker.perform_async(123)
TestWorker.drain
expect(TestWorker.jobs.size).to eq(1)
end
end
end
end
ruby-on-rails rspec rspec-rails sidekiq rspec-sidekiq
add a comment |
up vote
0
down vote
favorite
How to test or stub Sidekiq::Batch in RSPEC ?
Please see got error in code below.
rails_helper
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'sidekiq/testing'
Sidekiq::Testing.fake!
Worker to be tested...
class TestWorker
def perform(id)
batch = Sidekiq::Batch.new
batch.description = "Sample"
batch.on(:complete, TestWorker, 'id' => 123, 'last_checked' => Time.now)
# => *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fd8b728a1d0>
batch.jobs do # => NoMethodError: undefined method `jobs' for #<Batch:0x007f936c9ebf68>
Sidekiq::Client.push({
'class' => TestWorker,
'queue' => q,
'args' => [id, batch.bid, 1, Time.now]
})
end
end
end
class TestWorkerCallbacks
def complete(status, options)
#simple record update here
end
end
spec/workers/test_worker_spec.rb
require 'rails_helper'
RSpec.describe TestWorker, type: :worker do
context "Sidekiq Worker" do
it "should respond to #perform" do
expect(TestWorker.new).to respond_to(:perform)
end
describe "perform" do
before do
Sidekiq::Worker.clear_all
end
it "updates order records" do
expect(TestWorker.jobs.size).to eq(0)
TestWorker.perform_async(123)
TestWorker.drain
expect(TestWorker.jobs.size).to eq(1)
end
end
end
end
ruby-on-rails rspec rspec-rails sidekiq rspec-sidekiq
have you tried using adoubleobject?
– emaillenin
Nov 22 at 1:43
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
How to test or stub Sidekiq::Batch in RSPEC ?
Please see got error in code below.
rails_helper
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'sidekiq/testing'
Sidekiq::Testing.fake!
Worker to be tested...
class TestWorker
def perform(id)
batch = Sidekiq::Batch.new
batch.description = "Sample"
batch.on(:complete, TestWorker, 'id' => 123, 'last_checked' => Time.now)
# => *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fd8b728a1d0>
batch.jobs do # => NoMethodError: undefined method `jobs' for #<Batch:0x007f936c9ebf68>
Sidekiq::Client.push({
'class' => TestWorker,
'queue' => q,
'args' => [id, batch.bid, 1, Time.now]
})
end
end
end
class TestWorkerCallbacks
def complete(status, options)
#simple record update here
end
end
spec/workers/test_worker_spec.rb
require 'rails_helper'
RSpec.describe TestWorker, type: :worker do
context "Sidekiq Worker" do
it "should respond to #perform" do
expect(TestWorker.new).to respond_to(:perform)
end
describe "perform" do
before do
Sidekiq::Worker.clear_all
end
it "updates order records" do
expect(TestWorker.jobs.size).to eq(0)
TestWorker.perform_async(123)
TestWorker.drain
expect(TestWorker.jobs.size).to eq(1)
end
end
end
end
ruby-on-rails rspec rspec-rails sidekiq rspec-sidekiq
How to test or stub Sidekiq::Batch in RSPEC ?
Please see got error in code below.
rails_helper
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'sidekiq/testing'
Sidekiq::Testing.fake!
Worker to be tested...
class TestWorker
def perform(id)
batch = Sidekiq::Batch.new
batch.description = "Sample"
batch.on(:complete, TestWorker, 'id' => 123, 'last_checked' => Time.now)
# => *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fd8b728a1d0>
batch.jobs do # => NoMethodError: undefined method `jobs' for #<Batch:0x007f936c9ebf68>
Sidekiq::Client.push({
'class' => TestWorker,
'queue' => q,
'args' => [id, batch.bid, 1, Time.now]
})
end
end
end
class TestWorkerCallbacks
def complete(status, options)
#simple record update here
end
end
spec/workers/test_worker_spec.rb
require 'rails_helper'
RSpec.describe TestWorker, type: :worker do
context "Sidekiq Worker" do
it "should respond to #perform" do
expect(TestWorker.new).to respond_to(:perform)
end
describe "perform" do
before do
Sidekiq::Worker.clear_all
end
it "updates order records" do
expect(TestWorker.jobs.size).to eq(0)
TestWorker.perform_async(123)
TestWorker.drain
expect(TestWorker.jobs.size).to eq(1)
end
end
end
end
ruby-on-rails rspec rspec-rails sidekiq rspec-sidekiq
ruby-on-rails rspec rspec-rails sidekiq rspec-sidekiq
edited Nov 22 at 7:25
asked Nov 22 at 1:27
aldrien.h
1,52721020
1,52721020
have you tried using adoubleobject?
– emaillenin
Nov 22 at 1:43
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07
add a comment |
have you tried using adoubleobject?
– emaillenin
Nov 22 at 1:43
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07
have you tried using a
double object?– emaillenin
Nov 22 at 1:43
have you tried using a
double object?– emaillenin
Nov 22 at 1:43
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422679%2fhow-to-test-or-stub-sidekiqbatch-in-rspec%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
have you tried using a
doubleobject?– emaillenin
Nov 22 at 1:43
@emaillenin not yet, can you please show some ex. code
– aldrien.h
Nov 22 at 5:17
github.com/mperham/sidekiq/wiki/Testing#testing-batches
– emaillenin
Nov 22 at 5:22
@emaillenin i tried that but no success, getting some undefined methods like, *** NoMethodError Exception: undefined method `on' for #<Batch:0x007fdd9e1d8de0> ....
– aldrien.h
Nov 22 at 6:57
as well as undefined method `jobs' => batch.jobs do
– aldrien.h
Nov 22 at 7:07