Как обмануть поиск субдомена в тестах направляющих?

Мне определили следующий фильтр:

# application_controller.rb
class ApplicationController < ActionController::Base
  before_filter :find_account

  private

    def find_account
      @current_account = Account.find_by_subdomain!(request.subdomains.first)
    end
end

и в моем тесте:

# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
  setup do
    @request.host = "test.myapp.local"
  end
  # ...
end

Теперь test определяется как субдомен для фиктивной учетной записи, которую я загружаю до всего использования запросов factory_girl. Однако это бросает нулевую ошибку объекта, говоря, что @request является нолем. Удаление блока установки заставляет все мои тесты перестать работать, поскольку find_account не может найти учетную запись и поэтому бросает a RecordNotFound ошибка.

Что я делаю неправильно?

6
задан Wayne Molina 28 November 2009 в 16:58
поделиться