gpt4 book ai didi

ruby-on-rails - Rspec 发布错误数量的参数(给定 2,预期 1)请求规范时间相关

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:35 24 4
gpt4 key购买 nike

我在作业 Controller 中有一个方法可以强制一些延迟的作业立即运行

  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 及其在请求规范中给定的 post 请求方式进行测试

  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

最佳答案

答案是我错误地渲染了 json 它应该是 format.json { head :no_content } 而不是 format.json render json: { status: 'success' }/

关于ruby-on-rails - Rspec 发布错误数量的参数(给定 2,预期 1)请求规范时间相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com