簡體   English   中英

如何測試 Resque 工作者

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM