[RUBY-ON-RAILS] RSpec에 설정된 하위 도메인을 레일
RUBY-ON-RAILSRSpec에 설정된 하위 도메인을 레일
내 응용 프로그램을 테스트하기 위해 RSpec을 사용하고 있습니다. 내 응용 프로그램 컨트롤러에서 나는 그래서 같은 방법이있다 :
def set_current_account
@current_account ||= Account.find_by_subdomain(request.subdomains.first)
end
내 사양의 request.subdomain을 설정할 수 있습니까? 아마 전에 블록? 여기에 대한 조언이 큰 감사 것, 그래서 나는 RSpec에 새로운 오전.
EEF
해결법
-
==============================
1.나는이 문제를 정렬하는 방법을 알아 냈어.
나는이 문제를 정렬하는 방법을 알아 냈어.
내 사양 내 이전 블록에서 단순히 추가 :
before(:each) do @request.host = "#{mock_subdomain}.example.com" end
request.subdomains.first까지이 설정은 mock_subdomain의 값이 될 수 있습니다.
그 그물에 다른 곳에서는 아주 잘 설명하지 희망의 사람이 유용한를 찾습니다.
-
==============================
2.나는이 상대적으로 오래된 질문입니다 알지만,이 종류의 테스트를 실행중인 제품에 따라 달라집니다 것으로 나타났습니다. 나는 확실히 몇 가지이 질문은 질문을 받았다 이후 변경된 해요 그래서 나는 또한, 레일 4 RSpec에 3.2를 실행하고 있습니다.
나는이 상대적으로 오래된 질문입니다 알지만,이 종류의 테스트를 실행중인 제품에 따라 달라집니다 것으로 나타났습니다. 나는 확실히 몇 가지이 질문은 질문을 받았다 이후 변경된 해요 그래서 나는 또한, 레일 4 RSpec에 3.2를 실행하고 있습니다.
요청 사양
before { host! "#{mock_subdomain}.example.com" }
카피 바라와 기능 사양
before { Capybara.default_host = "http://#{mock_subdomain}.example.com" } after { Capybara.default_host = "http://www.example.com" }
나는 보통 사양 / 지원 모듈을 만드는 것이 다음과 같이 뭔가 :
# spec/support/feature_subdomain_helpers.rb module FeatureSubdomainHelpers # Sets Capybara to use a given subdomain. def within_subdomain(subdomain) before { Capybara.default_host = "http://#{subdomain}.example.com" } after { Capybara.default_host = "http://www.example.com" } yield end end # spec/support/request_subdomain_helpers.rb module RequestSubdomainHelpers # Sets host to use a given subdomain. def within_subdomain(subdomain) before { host! "#{subdomain}.example.com" } after { host! "www.example.com" } yield end end
사양 /의 rails_helper.rb에 포함 :
RSpec.configure do |config| # ... # Extensions config.extend FeatureSubdomainHelpers, type: :feature config.extend RequestSubdomainHelpers, type: :request end
그럼 당신은 지금처럼 사양 내에서 호출 할 수 있습니다 :
feature 'Admin signs in' do given!(:admin) { FactoryGirl.create(:user, :admin) } within_subdomain :admin do scenario 'with valid credentials' do # ... end scenario 'with invalid password' do # ... end end end
-
==============================
3.레일에서 3 모든 I 수동으로 호스트가 작동하지 않았다 설정할 수 있지만 나는 그들이 당신이 얻을 같은 요청 도우미로 전달 경로를 분석하는 방법을 잘 알게 코드를보고했습니다. 컨트롤러가 가고 있다면 과연 하위 도메인 및 @king_of_the_castle로 저장합니다에서 언급 된 사용자를 가져옵니다
레일에서 3 모든 I 수동으로 호스트가 작동하지 않았다 설정할 수 있지만 나는 그들이 당신이 얻을 같은 요청 도우미로 전달 경로를 분석하는 방법을 잘 알게 코드를보고했습니다. 컨트롤러가 가고 있다면 과연 하위 도메인 및 @king_of_the_castle로 저장합니다에서 언급 된 사용자를 가져옵니다
it "fetches the user of the subomain" do get "http://#{mock_subdomain}.example.com/rest_of_the_path" assigns[:king_of_the_castle].should eql(User.find_by_name mock_subdomain) end
-
==============================
4.크리스 피터스 '대답은 요청 사양 나를 위해 일하지만, 기능 사양, 나는 다음과 같이 변경했습니다 :
크리스 피터스 '대답은 요청 사양 나를 위해 일하지만, 기능 사양, 나는 다음과 같이 변경했습니다 :
rails_helper :
Capybara.app_host = 'http://lvh.me' Capybara.always_include_port = true
feature_subdomain_helpers :
module FeatureSubdomainHelpers def within_subdomain(subdomain) before { Capybara.app_host = "http://#{subdomain}.lvh.me" } after { Capybara.app_host = "http://lvh.me" } yield end end
from https://stackoverflow.com/questions/2556627/rails-rspec-set-subdomain by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 오류 ArgumentError :와 ApplicationController의 사본 모듈 트리에서 제거하지만 여전히 활성화되어 (0) | 2020.02.24 |
---|---|
[RUBY-ON-RAILS] 레일에 루비에서 URL 인코딩과 동등한 (0) | 2020.02.24 |
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에 루비와 CSS를 사용합니까? (0) | 2020.02.24 |
[RUBY-ON-RAILS] 60 초 안정 파이어 접속을 얻을 수없는 (127.0.0.1:7055) (0) | 2020.02.24 |
[RUBY-ON-RAILS] 어떻게 요청 리퍼러 경로를 얻는 방법? (0) | 2020.02.24 |