rspecのcontrollerとrequestのタイプ違い
解決
requestは複数のcontrollerを使用した場合に使用する。 controllerは単体の動作の確認をする為に確認する。
request spec - Request specs - RSpec Rails - RSpec - Relish
require "rails_helper"
RSpec.describe "Widget management", :type => :request do
it "creates a Widget and redirects to the Widget's page" do
get "/widgets/new"
expect(response).to render_template(:new)
post "/widgets", :params => { :widget => {:name => "My Widget"} }
expect(response).to redirect_to(assigns(:widget))
follow_redirect!
expect(response).to render_template(:show)
expect(response.body).to include("Widget was successfully created.")
end
it "does not render a different template" do
get "/widgets/new"
expect(response).to_not render_template(:show)
end
end
render_views - Controller specs - RSpec Rails - RSpec - Relish
require "rails_helper"
RSpec.describe WidgetsController, :type => :controller do
render_views
describe "GET index" do
it "has a widgets related heading" do
get :index
expect(response.body).to match /<h1>.*widgets/im
end
end
end
経緯
コントローラーのテストが(typeが)request
で作成されていたので慣習で作成していた。
しかし、sessionを操作に難儀する。
そして、検索するも、大体がcontroller
に関して書かれた物。