2013-03-30 2 views
9

내 응용 프로그램의 대부분은 사용자의 웹 사이트를 처리하기위한 백그라운드 작업에 의존하므로이를 처리하기 위해 몇 가지 테스트를 작성해야합니다.Rspec으로 백그라운드 작업 (Sidekiq)을 테스트하는 방법은 무엇입니까?

첫 번째 질문은 app/workers/some_worker.rb

둘째
class SomeWorker 
    include Sidekiq::Worker 

    def perform(model_id) 
    ... 
    end 
end 

, 어떻게 내가 그런 내가 실제로 노동자를 실행할 필요가 없습니다 다음과 같은 코드를 스텁 않는 예를 들어, Sidekiq 작업자 클래스의 코드를 테스트하는 방법입니다 내 검사 속도를 늦 췄나?

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

답변

6

Testing page in the Sidekiq wiki을 읽으십시오.

+0

나는 그것을 놓쳤다. 나는 'work = HardWorker.new; work.perform (1, 2)'코드를 실행하십시오. 그래도 테스트를 위해 외부 사이트를 위장하는 방법에 대해 아직 확실하지 않습니다. –

+1

VCR (https://www.relishapp.com/vcr/vcr/docs) –

+1

[테스트에서 앞서 언급 한 Sidekiq wiki 페이지] (https://github.com/mperham/sidekiq/wiki/Testing)와 같은 것을 시도해보십시오. –

8

정확하게 (Sidekq 직원들에 대한 테스트) 필자가 작성한 rspec-sidekiq 보석을보십시오.