gpt4 book ai didi

ruby-on-rails - 如何使用 RSpec 测试 Sidekiq worker?

转载 作者:行者123 更新时间:2023-12-02 17:05:52 24 4
gpt4 key购买 nike

我正在使用 RSPEC 进行测试,并使用 Sidekiq 进行后台作业。

因为在 rspec 中没有用于 workers 的生成器,所以不确定要使用什么。

https://relishapp.com/rspec/rspec-rails/docs/generators

require 'spec_helper'

RSpec.describe TestWorker, type: ? do # ex. :worker :sidekiq ...
describe "TestWorker" do
it "" do
....
end
end
end

bundle exec rspec spec/workers/test_worker_spec.rb

像下面那样做,我得到:uninitialized constant TestWorker 需要'spec_helper'

describe TestWorker do
it "" do
....
end
end

正如我所尝试的,gem rspec-sidekiq https://github.com/philostler/rspec-sidekiq

谁能提供一个示例模板用于在 Rspec 中测试 app/workers/

谢谢。

最佳答案

我没有使用 rspec-sidekiq gem,但是,这里是我如何检查使用 sidekiq 的后台作业的示例

# app/spec/workers/demo_worker_spec.rb

require 'rails_helper'
require 'sidekiq/testing'
Sidekiq::Testing.fake!

RSpec.describe DemoWorker, type: :worker do

describe "Sidekiq Worker" do

let (:demo) { FactoryGirl.create(:demo) }

it "should respond to #perform" do
expect(DemoWorker.new).to respond_to(:perform)
end

describe "Demo" do

before do
Sidekiq::Extensions.enable_delay!
Sidekiq::Worker.clear_all
end

it "should enqueue a Email and SMS job" do
assert_equal 0, Sidekiq::Extensions::DelayedMailer.jobs.size
Mailer.delay.demo_request(demo.id)
assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs.size
end

end

end

end
  1. 我正在检查实例是否响应执行。
  2. 然后,我在作业安排前后进行断言。

关于ruby-on-rails - 如何使用 RSpec 测试 Sidekiq worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com