メインコンテンツまでスキップ

Cookies クッキー

コントローラのスペックからクッキーに対するアサーションを行う方法はいくつかありますが、 以下に示すように cookies メソッドを使用することを推奨します。

cookies メソッドはインディファレントアクセスをサポートしているため、 クッキーを取得または設定するときに文字列やシンボルを使用できます。

There are different ways to make assertions on cookies from controller specs, but we recommend using the cookies method as set out below.

You can use strings or symbols to fetch or set your cookies because the cookies method supports indifferent access.

Testing cookie's value cleared in controller

Given a file named "spec/controllers/application_controller_spec.rb" with:

require "rails_helper"

RSpec.describe ApplicationController, type: :controller do
controller do
def clear_cookie
cookies.delete(:user_name)
head :ok
end
end

before do
routes.draw { get "clear_cookie" => "anonymous#clear_cookie" }
end

it "clear cookie's value 'user_name'" do
cookies[:user_name] = "Sam"

get :clear_cookie

expect(cookies[:user_name]).to eq nil
end
end

When I run rspec spec

Then the example should pass.