Edited at

URLリダイレクトのspecを書きたいとき

More than 5 years have passed since last update.

単純に"old/page/url"を"new/page/url"にリダイレクトする処理のrspecを書くとき、

  get 'old/page/url'

で書くと、そんなacitonがないよ、と怒られる。

Controller specの場合、getに渡すパラメータがaction名だから。

そんなとき、Request specsの登場です。

やり方は簡単。specをspec/requestsフォルダ配下に作るだけです。

describe PcController do

it 'redirect old/page/url to new/page/url' do
get 'old/page/url'
expect(response).to redirect_to('http://test.com/new/page/url')
end
end


独り言

なるほど、spec/requests配下に置くだけで、urlをgetできるのだ。ちなみに、postもできる。

見た目では同じgetメソッドなのに、置く場所によって、actionであったり、urlであったりするのだ。