복붙노트

[RUBY-ON-RAILS] 방문 방법은 내 RSpec에에서 찾을 수 없습니다

RUBY-ON-RAILS

방문 방법은 내 RSpec에에서 찾을 수 없습니다

내 자바 웹 응용 프로그램은 HTTP에서 바람둥이에서 실행되는 : // localhost를 : 8080 /

내 첫 번째 사양, home_spec 작성 :

require 'spec_helper'


describe "home" do

    it "should render the home page" do
       visit "/"

       page.should have_content("hello world")
    end

end

그리고 실행 :

rspec

나는 얻다:

F

Failures:

  1) home should render the home page
     Failure/Error: visit "/"
     NoMethodError:
       undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x242870b7>
     # ./spec/home/home_spec.rb:7:in `(root)'

Finished in 0.012 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/home/home_spec.rb:6 # home should render the home page

나는 spec_helper에서 카피 바라를 포함하지이 작업을해야하기 때문에?

어떻게 올바른 URL을 방문 알 수 있습니까? 어떻게 내 URL이 로컬 호스트 인 경우 : 3030 또는 로컬 호스트 : 8080?

내 gemfile :

source 'http://rubygems.org'

gem "activerecord"
gem "rspec"
gem "capybara"
gem "activerecord-jdbcmysql-adapter"

내 spec_helper :

require 'capybara/rspec'

해결법

  1. ==============================

    1.RSpec에 문제와 관련하여 (https://github.com/rspec/rspec-rails/issues/360)

    RSpec에 문제와 관련하여 (https://github.com/rspec/rspec-rails/issues/360)

    당신은 넣어한다

    config.include Capybara::DSL
    

    spec_helper.rb에서는, 내부 구성 블록.

  2. ==============================

    2.카피 바라 :: RSpec에 지금에 보이는 것을 기본 디렉토리는 카피 바라를 포함합니다 : DSL 및 카피 바라 :: RSpecMatchers는 기능에 대한 요청에서 변경됩니다.

    카피 바라 :: RSpec에 지금에 보이는 것을 기본 디렉토리는 카피 바라를 포함합니다 : DSL 및 카피 바라 :: RSpecMatchers는 기능에 대한 요청에서 변경됩니다.

    나는 기능에 나의 요청 디렉토리의 이름을 변경 한 후 나는 명시 적으로 포함하지 않고 다시 사용할 수있는 정규 및 DSL 방법을 얻었다.

    다음 커밋보기

  3. ==============================

    3.또한 있는지 확인 테스트는 / 스펙 / 기능 디렉토리에 있습니다. RSpec에 레일 및 카피 바라 2.0에 따르면, 카피 바라의 V2 이상에서는 RSpec에 요청 사양에서 기본적으로 사용할 수 없습니다. 그들은 "사양에 사양 / 요청에서 사용 카피 바라가 / 기능 것을 어떤 테스트를 이동 ...."을 제안

    또한 있는지 확인 테스트는 / 스펙 / 기능 디렉토리에 있습니다. RSpec에 레일 및 카피 바라 2.0에 따르면, 카피 바라의 V2 이상에서는 RSpec에 요청 사양에서 기본적으로 사용할 수 없습니다. 그들은 "사양에 사양 / 요청에서 사용 카피 바라가 / 기능 것을 어떤 테스트를 이동 ...."을 제안

  4. ==============================

    4.파일 스펙 / 요청 사양 / 통합의 경우, 또는 기본적으로 카피 바라의 DSL이 자동으로 포함되어있는 예를 들어 그룹이있는 경우 : 유형 => : 요청.

    파일 스펙 / 요청 사양 / 통합의 경우, 또는 기본적으로 카피 바라의 DSL이 자동으로 포함되어있는 예를 들어 그룹이있는 경우 : 유형 => : 요청.

    파일이 사양에 있기 때문에 / 집 카피 바라 헬퍼는 포함되지 않습니다. 당신도 위의 패턴 중 하나에 부합하거나 추가 포함 카피 바라 :: 또한 (당신은 또한 (전에 일부를 복제 할 필요가있을 수 있습니다. : 설치 될 각) 물건을) 트릭을 할해야 DSL

  5. ==============================

    5.먼저 그것을 확인

    먼저 그것을 확인

    당신은 성공하지 않은 경우,

    실제로 RSpec.configure 블록에서뿐만 아니라이 코드를 귀하의 사양 도우미의 최종 추가

    module ::RSpec::Core
      class ExampleGroup
        include Capybara::DSL
        include Capybara::RSpecMatchers
      end
    end
    
  6. ==============================

    6.1)에 'rails_helper'설정 추가 :

    1)에 'rails_helper'설정 추가 :

    config.include Capybara::DSL
    config.include Capybara::RSpecMatchers
    
    And comment out the `require 'spec_helper'` line.
    

    2) 'spec_helper'에 추가

    require 'rails_helper'
    
  7. from https://stackoverflow.com/questions/8862967/visit-method-not-found-in-my-rspec by cc-by-sa and MIT license