redirect_to
マッチャー
redirect_to
マッチャーは、リクエストが指定されたテンプレートまたはアクションにリダイレクトすることを指定するために使用されます。これは assert_redirected_to
に 委譲します。
これはコントローラースペック(spec/controllers)とリクエストスペック(spec/requests)で利用できます。
redirect_to
を使用して、4つの可能なオプションを指定する方法
以下の内容で "spec/controllers/widgets_controller_spec.rb" という名前のファイルがあるとします:
require "rails_helper"
RSpec.describe WidgetsController do
describe "#create" do
subject { post :create, :params => { :widget => { :name => "Foo" } } }
it "redirects to widget_url(@widget)" do
expect(subject).to redirect_to(widget_url(assigns(:widget)))
end
it "redirects_to :action => :show" do
expect(subject).to redirect_to :action => :show,
:id => assigns(:widget).id
end
it "redirects_to(@widget)" do
expect(subject).to redirect_to(assigns(:widget))
end
it "redirects_to /widgets/:id" do
expect(subject).to redirect_to("/widgets/#{assigns(:widget).id}")
end
end
end
次のコマンドを実行すると:
rspec spec/controllers/widgets_controller_spec.rb
全ての例がパスするはずです。