2016-08-01 5 views
0

Ich habe folgenden Test ...ein Modul in einem rspec Prüflast

spec/feature/users/sign_in_spec.rb

require "rails_helper" 
feature "User sign in" do 
    extend SubdomainHelpers 
    let!(:account) { FactoryGirl.create(:account) } 
    let(:sign_in_url) { "http://#{account.subdomain}.example.com/sign_in" } 
    let(:root_url) { "http://#{account.subdomain}.example.com/" } 
    within_account_subdomain do 
     scenario "signs in as an account owner successfully" do 
      visit root_url 
      expect(page.current_url).to eq(sign_in_url) 
      fill_in "Email", :with => account.owner.email 
      fill_in "Password", :with => "password" 
      click_button "Sign in" 
      expect(page).to have_content("You are now signed in.") 
      expect(page.current_url).to eq(root_url) 
     end 
    end 
end 

Beachten Sie die 3. Zeile extend SubdomainHelpers, die ich von zu laden versuchen ...

spec/support/subdomain_helpers.rb

module SubdomainHelpers 
    def within_account_subdomain 
     let(:subdomain_url) { "http://#{account.subdomain}.example.com" } 
     before { Capybara.default_host = subdomain_url } 
     after { Capybara.default_host = "http://www.example.com" } 
     yield 
    end 
end 

Wenn ich den Text laufen erhalte ich die Fehler uninitialized constant SubdomainHelpers (NameError) Wie rufe ich das SubdomainHelpers-Modul aus dem Test?

Antwort

0

Sie müssen require 'support/subdomain_helpers' in Ihrem rails_helper oder der sign_in_spec Datei.

Dateien im Unterverzeichnis spec/support werden von rspec automatisch in LOAD_PATH geladen, aber sie sind nicht erforderlich.

+0

Für die Nachwelt brauche ich sowohl die 'extend SubdomainHelpers' und die 'Unterstützung/subdomain_helpers' in der sign_in_spec.rb für den Test zu laufen. – Lumbee

Verwandte Themen