How do I change the default “www.example.com” domain for testing in rails?

后端 未结 10 669
囚心锁ツ
囚心锁ツ 2020-11-30 04:17

I have a rails application which acts differently depending on what domain it\'s accessed at (for example www.myapp.com will invoke differently to user.myapp.com). In produc

10条回答
  •  囚心锁ツ
    2020-11-30 04:57

    I think all answers are incomplete here... To enumerate all possible cases:

    • Integration Specs (inheriting from ActionDispatch::IntegrationTest):

      host! "my.awesome.host"
      

      See the docs, section 5.1 Helpers Available for Integration Tests.

    • Controller Specs (inheriting from ActionController::TestCase)

      @request.host = 'my.awesome.host'
      

      See the docs, section 4.4 Instance Variables Available.

    • Feature Specs (through Capybara)

      Capybara.default_host = "http://my.awesome.host"
      # Or to configure domain for route helpers:
      default_url_options[:host] = "my.awesome.host"
      

      From @AminAriana's answer

    • View Specs (inheriting from ActionView::TestCase)

      @request.host = 'my.awesome.host'
      

      ...or through RSpec:

      controller.request.host = "my.awesome.host"
      

      See the rspec-rails view spec docs.

提交回复
热议问题