0
我想編寫測試以檢查作業是否執行。它看起來如下:作業未執行。 Ruby on Rails
測試/工作/ send_remember_email_job_test.rb
test "remember method was sent" do
assert_performed_jobs 0
assert_enqueued_jobs 1 do
SendRememberEmailJob.perform_later('[email protected]', 0)
end
assert_performed_jobs 1
end
應用程序/工作/ send_remember_email_job.rb
class SendRememberEmailJob < ActiveJob::Base
queue_as :default
def perform(email,time, task)
UserMailer.delay(run_at:time.hours.from_now).remember_mail(email,task)
end
end
當我運行測試,我總是得到1次失敗:
1 jobs expected, but 0 was performed.
Expected: 1
Actual: 0
我不知道它是否有幫助,但我使用delayed_job。提前致謝
延遲工作寫入DB到'有'last_error'列delayed_jobs'表。看看它的價值,並在這裏發佈,如果它不會幫助你。 –
檢查last_error列?當我不在數據庫中存儲測試變量時,我該如何做到這一點。在開發中一切正常,但在這裏測試失敗。任何其他想法? – Aleksander
您是否嘗試將'SendRememberEmailJob.perform_later('[email protected]',0)'改爲'SendRememberEmailJob.perform_now('[email protected]',0)'? –