@kyanny's blog

My thoughts, my life. Views/opinions are my own.

インテグレーションテストの中でセッション (CGI::Session) に値をセットする

いわゆるセッション (コントローラのアクションのなかで session[:hoge] とかでアクセスできるアレ) に値を入れた状態でリクエストしたいときはこうやる。ちなみにアレは CGI::Session のインスタンスっぽい。

def test_hoge
  @request.session[:hoge] = "hoge"
  @request.session.update
  get '/'
end

update を呼ぶのがミソ。 Rails 3 とかだともっとスマートなやり方があるのかなぁ (実際やった環境は Rails 2.0.2 古い...)