找回密码
 立即注册
相关推荐换一批
  1. GB 26148-2010 高压水射流清洗作业安全规范
  2. SY/T 10035-2010 钻井平台拖航与就位作业规范
  3. SY 5856-2010 油气田电业带作业安全规程
  4. TB/T 1500.6-2009 接发列车作业 第6部分 单双线电话闭塞无联锁
  5. TB/T 1500.7-2009 接发列车作业 第7部分 单线自动站间闭塞集中联锁(设信号员)
  6. TB/T 1500.4-2009 接发列车作业 第4部分 单双线半自动闭塞集中联锁(未设信号员)
  7. TB/T 1500.2-2009 接发列车作业 第2部分 双线自动闭塞集中联锁(未设信号员)
  8. TB/T 1500.3-2009 接发列车作业 第3部分 单双线半自动闭塞集中联锁(设信号员)
  9. TB/T 1500.1-2009 接发列车作业 第1部分 双线自动闭塞集中联锁(设信号员)
  10. SY/T 6751-2009 欠平衡测井作业技术规范
  11. SY/T 6413-2009 数控测井作业规程
  12. SY/T 5299-2009 电缆式桥塞、倒灰作业规程
  13. GB/T 24555-2009 200m氦氧饱和潜水作业要求
  14. GBZ/T 205-2007 密闭空间作业职业危害防护规范
  15. TB/T 2116.4-2005 铁路车站货运作业 第4部分:专用线作业
  16. TB/T 2116.2-2005 铁路车站货运作业 第2部分:整车货物作业
  17. TB/T 2116.1-2005 铁路车站货运作业 第1部分:通用作业
  18. SY/T 6264-2006 油水井大修作业工程设计编写规范
  19. SY/T 6127-2006 油气水井井下作业资料录取项目规范
  20. TB/T 3149-2007 铁路液压组合式作业机械技术条件
  21. GB 13746-2008 铅作业安全卫生规程
  22. JT 330-1997 港口件杂货物装卸作业安全技术要求
  23. GB 20826-2007 潜水员高压水射流作业安全规程
ServiceMaileruserdeliver作业 | 软件设计/软件工程 2022-05-03 433 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
尝试使用延迟的作业活动记录升级到 Rails 4.2。我没有为测试环境设置延迟作业后端,因为我认为该作业会立即执行。

我正在尝试测试新的“deliver_later”。使用 Rspec 的方法,但我不确定如何。

旧控制器代码:

ServiceMailer.delay.new_user(@user)

新控制器代码:

ServiceMailer.new_user(@user).deliver_later

我曾经这样测试:

期望(ServiceMailer).to receive(:new_user).with(@user).and_return(double("mailer", :deliver => true))

现在我得到了它的错误。 (双重“邮件程序”收到意外消息:稍后通过(无参数))

只要

期望(ServiceMailer)。接收(:new_user)

使用 'undefined 方法 'deliver_later' nil:NilClass 也失败了

我已经尝试了一些示例,这些示例允许您使用 ActiveJob 中的 test_helper 来查看作业是否已排队,但我还没有成功测试正确的作业正在排队。

期望(enqueued_jobs.size).to eq(1)

如果包含 test_helper,这将通过,但它不允许我检查是否发送了正确的电子邮件。

我想做的是:

有任何想法吗? ?

谢谢

回答
如果我理解正确,您可以:
  1. message_delivery = instance_double(ActionMailer::MessageDelivery)
  2. expect(ServiceMailer).to receive(:new_user).with(@user).and_return(message_delivery)
  3. allow(message_delivery).to receive(:deliver_later)
复制代码

关键是您需要以某种方式为 Deliver_later 提供双精度。





上一篇:替换整个页面上多个单词的所有例子
下一篇:如何从列表中的整数中删除重复的数字