私は今、スコープを使用してRSpecのポスト間違った番号(1を予想、2を与えられた)要求仕様時間依存
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
そのを実行するためのいくつかの遅れたジョブを強制的にジョブコントローラ内のメソッドを持っています。
私はルート
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)
を下回っている
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
要求仕様にRSpecの、その与えられた後の要求方法でこれをテストしようとしています
と私の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 %>
投稿に引数を渡すように求めているようですが、私には何もありません。私はちょうど私の方法がヒットするようにしたい。私は過去にparamsを指定する必要はなく、投稿することはできますが、私が行ったことを覚えていないことは、私に間違いを与えていることを覚えています。現在、RSpecの3.2
仕様でなければなりませんJSONをレンダリングしていますということです。遅れた仕事によると、私は 'Time.zone.now'を使うと思われます。私はアプリに別のライブラリを追加することに興味がありません。提案していただきありがとうございます。 – Jngai1297