У меня есть метод в контроллере рабочих мест, что вынуждает некоторые отсроченные задания для запуска теперьRspec Сообщение неверное число аргументов (при 2, ожидается 1) Запрос Spec Time Dependent
def retry_queued
@jobs = Delayed::Job.awaiting_retry.update_all(run_at: Time.zone.now)
respond_to do |format|
format.html { redirect_to jobs_path, notice: "Queued jobs getting retried." }
format.json render json: { status: 'success' }
end
end
Сво помощью области.
Я пытаюсь проверить это с RSpec и его данный пост способом запроса в запрос спецификации
describe "POST retry_queued" do
before do
@not_running = Delayed::Job.create(run_at: Time.zone.now - 1.hour)
@not_running.update_attribute(:attempts, 1)
@from = Delayed::Job.last.run_at
sign_in users(:jane)
end
it "run the queued job" do
expect(Delayed::Job.last.run_at.to_s).not_to eq(Time.zone.now.to_s)
post :retry_queued
expect(Delayed::Job.last.run_at.to_s).to eq(Time.zone.now.to_s)
end
end
мой сниппет маршрутов
resources :jobs, :only => [:index, :destroy] do
member do
put :run
end
collection do
delete :destroy_failed
delete :destroy_all
post :retry_queued
end
end
RSpec ошибка ниже
1) JobsController POST retry_queued run the queued job
Failure/Error: post :retry_queued
ArgumentError:
wrong number of arguments (given 2, expected 1)
и мой link_to, чтобы нажать его
<%= link_to retry_queued_jobs_path, class: "btn btn-default", method: :post do %>
<span class="glyphicon glyphicon-refresh"></span> Retry queued jobs
<% end %>
Кажется, что он просит меня передать аргументы для публикации, но у меня их нет. Я просто хочу, чтобы мой метод попал. Я помню, что могу просто отправить сообщение и не указывать параметры в прошлом, но не могу вспомнить, что я сделал, что дает мне ошибку, которую я получаю.
В настоящее время с помощью RSpec 3,2
Спецификация прошло после того, как я установил ошибку. Согласно отложенной работе, я предполагаю использовать 'Time.zone.now'. Мне не интересно добавлять в приложение другую библиотеку. Спасибо за предложение. – Jngai1297