2021-07-01 Rails RSpec サブドメインのテスト
RSpec サブドメインのテスト
RSpec でサブドメインを対象としたテストを実行したい場合、通常の名前付きルート xxx_path
だとサブドメインと認識されないので xxx_url
を使う必要がある。
具体的には下記のように書く必要がある。
describe 'Test' do
before { get xxx_url(host: 'subdomain.lvh.me') }
it { ... }
end
host: 'subdomain.lvh.me'
をイチイチ書くのはだるいという場合 default_url_options
が使える。
Capybara.current_session.server&.port
とポート指定しているのはヘッドレスChromeによるテストを行うときに必要だから。
describe 'Test' do
before do
default_url_options[:host] = "subdomain.lvh.me:#{Capybara.current_session.server&.port}"
end
it 'test 1' do
before { visit xxx_url }
it { ... }
end
it 'test 2' do
before { visit xxx_url }
it { ... }
end
end