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に関して書かれた物。
This post is licensed under CC BY 4.0 by the author.