用户可以从我的Rails店面结账,从而创建order
。假设用户没有取消,我想在一个月后创建重复订单。
因为我认为现在更好地寻找要做的事情,而不是计划将来发生的事情,我希望能找到需要处理的订单并为每次事件创建一个Sidekiq作业。这些作业中的每一个都将创建一个新订单,其内容与前一个订单相同。
因为我想使用TDD,在我将Sidekiq添加到我的项目或实现此功能之前,我想写一个rspec测试,告诉我我的工作在适当的时候排队。然后我将实现入队并继续编写一个规范,确认该作业实际上创建了一个新订单,此时我将去实现它。
我的问题是我应该如何实施测试以确保创建作业?
我看到ActiveSupport::Testing::TimeHelpers
已取代Timecop,所以我全都用它。我的第一个想法是这样做:
但我很确定在这种情况下不会有工作,所以我不确定如何继续。
答案 0 :(得分:0)
rspec-sidekiq gem
中有have_enqueued_job
个测试人员
他们的文档示例
AwesomeJob.perform_async 'Awesome', true
# test with...
expect(AwesomeJob).to have_enqueued_job('Awesome', true)