Ein großer Teil meiner Anwendung hängt von Hintergrundaufträgen ab, um Benutzerwebsites zu bearbeiten. Daher muss ich einige Tests schreiben, um diese zu erfassen.Wie testen Hintergrundjobs (Sidekiq) mit Rspec?
erste Frage ist, wie Code zu testen, die in einer Sidekiq Arbeiter-Klasse ist, zum Beispiel app/workers/some_worker.rb
class SomeWorker
include Sidekiq::Worker
def perform(model_id)
...
end
end
Zweitens, wie Stummel I-Code wie die folgenden so brauche ich nicht wirklich lief Arbeiter und meine Tests verlangsamen?
response = HTTParty.get("http://users-site.com", timeout: 30)
Woops habe ich vermisst, ich sehe ich kann 'work = HardWorker.new; work.perform (1, 2) ', um den Code auszuführen. Immer noch nicht sicher, wie man externe Seiten für die Tests vortäuschen soll. –
Versuchen Sie etwas wie VCR (https://www.relishapp.com/vcr/vcr/docs) –
[vor genannten Sidekiq Wiki Seite zum Testen] (https://github.com/mperham/sidekiq/wiki/Testing). –