Ruby on rails 如何使用Rspec测试后台作业(Sidekiq)?

Ruby on rails 如何使用Rspec测试后台作业(Sidekiq)?,ruby-on-rails,rspec,background-process,stub,sidekiq,Ruby On Rails,Rspec,Background Process,Stub,Sidekiq,我的应用程序很大一部分依赖于后台作业来处理用户的网站,所以我需要编写一些测试来涵盖这些内容 第一个问题是如何测试worker类中的代码,例如app/workers/some_worker.rb class SomeWorker include Sidekiq::Worker def perform(model_id) ... end end 第二,我如何处理下面这样的存根代码,这样我就不需要实际运行worker并降低测试速度 response = HTTParty.get

我的应用程序很大一部分依赖于后台作业来处理用户的网站,所以我需要编写一些测试来涵盖这些内容

第一个问题是如何测试worker类中的代码,例如
app/workers/some_worker.rb

class SomeWorker
  include Sidekiq::Worker

  def perform(model_id)
    ...
  end
end
第二,我如何处理下面这样的存根代码,这样我就不需要实际运行worker并降低测试速度

response = HTTParty.get("http://users-site.com", timeout: 30)

阅读。

看看我为实现这一点而编写的gem(Sidekiq工作人员的测试)。

Sidekiq提供了一些测试工作人员的选项

对我来说,在我将这些线添加到等级库文件的顶部之后,它就起作用了

require 'sidekiq/testing'
Sidekiq::Testing.inline!

哇,我错过了,我知道我可以使用
work=hardwerker.new;工作。执行(1,2)
以运行代码。仍然不知道如何伪造外部站点进行测试,尽管…@mind.blank可以查看一下如何存根您的API调用