2013-03-30 14 views
9

Duża część mojej aplikacji polega na pracy w tle w celu przetworzenia stron internetowych użytkownika, więc muszę napisać kilka testów, aby je uwzględnić.Jak przetestować zadania w tle (Sidekiq) za pomocą Rspec?

pierwsze pytanie jest jak testować kod, który znajduje się w klasie Sidekiq pracownika, na przykład app/workers/some_worker.rb

class SomeWorker 
    include Sidekiq::Worker 

    def perform(model_id) 
    ... 
    end 
end 

Po drugie, w jaki sposób skrótową kod taki jak poniżej, więc nie trzeba faktycznie uruchomić pracowników i spowolnić moje testy?

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

Odpowiedz

6
+0

Woops Brakowało mi tego, widzę, że mogę użyć 'work = HardWorker.new; work.perform (1, 2) 'aby uruchomić kod. Nadal nie wiesz, jak zrobić fałszywe strony zewnętrzne do testów. –

+1

Próba czegoś podobnego do magnetowidu (https://www.relishapp.com/vcr/vcr/ docs) –

+1

[Wspomniana strona wiki Sidekiq na temat testowania] (https://github.com/mperham/sidekiq/wiki/Testing). –

8

Zapoznaj się z klejnotem rspec-sidekiq, który stworzyłem, aby zrobić dokładnie to (testowanie pracowników Sidekiq).

Powiązane problemy