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

min*_*ank 13 rspec ruby-on-rails stub background-process sidekiq

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

第一个问题是如何测试Sidekiq工人类中的代码app/workers/some_worker.rb

class SomeWorker
  include Sidekiq::Worker

  def perform(model_id)
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

其次,我如何存储如下所示的代码,以便我不需要实际运行工作程序并减慢我的测试速度?

response = HTTParty.get("http://users-site.com", timeout: 30)
Run Code Online (Sandbox Code Playgroud)

Phi*_*ler 9

看看我写的rspec-sidekiq gem就是这样做的(测试Sidekiq工人).