我有这个代码来测试ActiveJob和ActionMailer与Rspec我不知道如何真正执行所有排队的作业
describe 'whatever' do
include ActiveJob::TestHelper
after do
clear_enqueued_jobs
end
it 'should email' do
expect(enqueued_jobs.size).to eq(1)
end
end
我有这个代码来测试ActiveJob和ActionMailer与Rspec我不知道如何真正执行所有排队的作业
describe 'whatever' do
include ActiveJob::TestHelper
after do
clear_enqueued_jobs
end
it 'should email' do
expect(enqueued_jobs.size).to eq(1)
end
end
4条答案
按热度按时间9rygscc11#
正确的测试方法是像你的例子一样检查排队作业的数量,然后分别测试每个作业。如果你想做集成测试,你可以尝试perform_enqueued_jobs helper:
参见活动作业::测试助手文档
o75abkj42#
下面是我解决类似问题的方法:
那么在规格中我们可以用途:
hgncfbus3#
只是结合了所有最好的作品,+包括sidekiq:
规范/支持/执行作业.rb:
规格/某些规格rb:
jyztefdp4#
我有一个
:inline_jobs
帮助器,当应用到测试时,它将执行排队作业并清除排队作业