最佳答案
尝试使用 延時 _ job _ active _ record 升級到 Rails4.2。我没有为测试环境设置 late _ job 后端,因为我认为这样就可以立即执行作业。
我正在尝试用 RSpec 测试新的“ give _ later”方法,但我不确定如何测试。
旧控制器代码:
ServiceMailer.delay.new_user(@user)
新的控制器代码:
ServiceMailer.new_user(@user).deliver_later
我以前是这样测试的:
expect(ServiceMailer).to receive(:new_user).with(@user).and_return(double("mailer", :deliver => true))
现在我使用它得到了错误。(双“ mailer”收到了意外的消息: give _ later with (no args))
只是
expect(ServiceMailer).to receive(:new_user)
对于 nil: NilClass,’未定义的方法‘ give _ later’也失败了
我已经尝试了一些示例,这些示例允许您使用 ActiveJob 中的 test _ helper 查看作业是否排队,但是我还没有设法测试正确的作业是否排队。
expect(enqueued_jobs.size).to eq(1)
如果包含 test _ helper,这将通过,但是它不允许我检查发送的电子邮件是否正确。
我想做的是:
有什么想法吗? 谢谢