解決

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に関して書かれた物。