正在try 升级到Rails 4.2,使用延迟的_作业(job)_活动_记录.我没有为测试环境设置延迟的_作业(job)后端,因为我认为作业(job)会立即执行.
我正在try 用RSpec测试新的"稍后交付"方法,但我不确定如何测试.
旧控制器代码:
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"收到意外消息:稍后发送(无参数))
只是
expect(ServiceMailer).to receive(:new_user)
对于nil:NilClass的"未定义方法'deliver_later'也失败"
我try 了一些示例,让您可以在ActiveJob中使用test_helper查看作业(job)是否排队,但我还没有成功测试正确的作业(job)是否排队.
expect(enqueued_jobs.size).to eq(1)
如果包含test_helper,则通过,但它不允许我判断发送的邮箱是否正确.
我想做的是:
- 测试正确的邮箱是否已排队(或直接在test env中执行)
- 使用正确的参数(@user)
有什么 idea 吗??