2013-03-30 27 views
9

Phần lớn ứng dụng của tôi dựa trên các công việc nền để xử lý các trang web của người dùng, vì vậy tôi cần phải viết một số thử nghiệm để trang trải các trang này.Làm thế nào để kiểm tra công việc nền (Sidekiq) với Rspec?

Câu hỏi đầu tiên là làm thế nào để kiểm tra mã đó là trong một lớp học Sidekiq lao động, ví dụ app/workers/some_worker.rb

class SomeWorker 
    include Sidekiq::Worker 

    def perform(model_id) 
    ... 
    end 
end 

Thứ hai, làm thế nào để tôi còn sơ khai mã như sau vì vậy tôi không cần phải thực sự chạy công nhân và làm chậm các bài kiểm tra của tôi?

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

Trả lời

6
+0

Woops Tôi bỏ lỡ điều đó, tôi thấy tôi có thể sử dụng 'work = HardWorker.new; work.perform (1, 2) 'để chạy mã. Vẫn không chắc chắn làm thế nào để đi về giả mạo các trang web bên ngoài cho các bài kiểm tra mặc dù. –

+1

Hãy thử một cái gì đó như VCR (https://www.relishapp.com/vcr/vcr/docs) –

+1

[Trang wiki Sidekiq được đề cập trên thử nghiệm] (https://github.com/mperham/sidekiq/wiki/Testing). –

8

Hãy xem đá quý rspec-sidekiq Tôi đã ủy quyền để thực hiện chính xác điều này (thử nghiệm công nhân Sidekiq).