[英]How to test Resque worker
在我的 rails 應用程序中,我有一個工作人員正在讀取 AWS SQS,然后簡單地將另一個工作人員排入 Resque。 我正在尋找使用 RSpec 進行測試的最佳方法。
有沒有辦法查看模擬 Resque 隊列中的內容? 基本上,我只想要一個測試來測試調用 SQS 工作人員是否會導致 Resque 工作人員。
您是否也在使用 Resque 從 SQS 讀取數據? 如果是這樣,您可以使用around
鈎子來啟用 Resque 的內聯模式。 (這樣,Resque 會立即執行作業,而無需實際排隊。)
around do |example|
Resque.inline = true
example.run
Resque.inline = false
end
根據您的代碼,您可以檢查其他工作人員是否已完成工作(例如,是否通過檢查相關記錄的計數差異創建了記錄),或者您可以使用 RSpec 的have_received方法來確保其他工作人員已被 Resque 排隊。
allow(Resque).to receive(:enqueue)
SQSWorker.perform
expect(Resque).to have_received(:enqueue).with(
OtherWorker,
optional: 'args'
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.