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

Solution 1:

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.

Solution 2:

@request.host = 'user.myapp.com'