发布
社区首页 >问答首页 >如何测试Resque worker

如何测试Resque worker
EN

Stack Overflow用户
提问于 2021-01-22 05:46:09
回答 1查看 159关注 0票数 0

在我的rails应用程序中,我有一个worker正在读取AWS SQS,然后简单地将另一个worker加入Resque。我正在寻找用RSpec测试它的最好方法。

有没有办法查看模拟Resque队列上的内容?基本上,我只想要一个测试,测试调用SQS worker是否会导致Resque worker。

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 15:55:21

你也在使用Resque从SQS中读取数据吗?如果是这样的话,你可以使用around钩子来启用Resque的内联模式。(通过这种方式,Resque可以立即执行作业,而无需实际对它们进行排队。)

代码语言:javascript
代码运行次数:0
复制
around do |example|
  Resque.inline = true
  example.run
  Resque.inline = false
end

根据您的代码,您可以检查其他worker是否已完成其工作(例如,它是否通过检查相关记录的计数差异来创建记录),或者您可以只使用RSpec的have_received方法来确保其他worker已通过Resque排队。

代码语言:javascript
代码运行次数:0
复制
  allow(Resque).to receive(:enqueue)
  SQSWorker.perform
  expect(Resque).to have_received(:enqueue).with(
    OtherWorker,
    optional: 'args'
  )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65836203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档