6
나는 정의 된 다음 필터가 있습니다레일즈 테스트에서 서브 도메인 룩업을 가짜로 만드는 방법은 무엇입니까?
# 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가 nil이라고 말하는 무 객체 오류를 발생시킵니다. 설치 블록을 제거하면 find_account가 계정을 찾을 수 없으므로 모든 테스트가 실패하므로
RecordNotFound
오류가 발생합니다.
내가 뭘 잘못하고 있니?
난 당신이 해결책을 찾았어요, 같은 문제있어? – compostus
서브 도메인을 얻기 위해 request.subdomains를 사용하고있는 것을 발견하는 데 유용하지만, params [: subdomain]에서 가져 왔지만 @ request.host 또는 @ request.env [HTTP_HOST ']를 설정하면 작동하지 않습니다. –