복붙노트

[RUBY-ON-RAILS] 정의되지 않은 메서드`#을 위해 '얻을 <RSpec에 :: 코어 :: ExampleGroup :: Nested_1 : 0x00000106db51f8>

RUBY-ON-RAILS

정의되지 않은 메서드`#을 위해 '얻을

사람의 아는 방법이 문제를 해결하기 위해? OSX에서 RSpec에이 레일 3.0.7 실행려고. 전체 세부 사항에서 : https://gist.github.com/1017044

  it "renders buttons_widgets partial" do
    get :buttons_widgets
    response.should render_template("buttons_widgets")
  end


→ rspec tools_model_spec.rb
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/version.rb:4: warning: already initialized constant STRING
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/metadata.rb:48: warning: already initialized constant RESERVED_KEYS
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/pending.rb:6: warning: already initialized constant DEFAULT_MESSAGE
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/world.rb:6: warning: already initialized constant PROC_HEX_NUMBER
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/world.rb:7: warning: already initialized constant PROJECT_DIR
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/configuration.rb:43: warning: already initialized constant CONDITIONAL_FILTERS
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/configuration.rb:48: warning: already initialized constant DEFAULT_BACKTRACE_PATTERNS
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core/runner.rb:13: warning: already initialized constant AT_EXIT_HOOK_BACKTRACE_LINE
/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/bundler/gems/rspec-core-bea2366c817e/lib/rspec/core.rb:35: warning: already initialized constant SharedContext
Run filtered excluding {:if=>#<Proc:/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:43>, :unless=>#<Proc:/Users/mm/.rvm/gems/ruby-1.9.2-p0@evergreen/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:44>}
F

Failures:

  1) ToolsController renders buttons_widgets partial
     Failure/Error: get :buttons_widgets
     NoMethodError:
       undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000106db51f8>
# ./tools_model_spec.rb:7:in `block (2 levels) in <top (required)>'

해결법

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

    1.당신의 예 get 메소드에 액세스 할 필요가 없습니다 RSpec에, 당신의 스펙은 컨트롤러 사양 것을 알고하지 않습니다.

    당신의 예 get 메소드에 액세스 할 필요가 없습니다 RSpec에, 당신의 스펙은 컨트롤러 사양 것을 알고하지 않습니다.

    RSpec에 2.x에서는 컨트롤러 디렉토리에있는 모든 컨트롤러 사양 있다고 가정합니다.

    이 RSpec에 3 변경되었습니다 :

    RSpec.configure do |config|
      config.infer_spec_type_from_file_location!
    end
    

    https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#file-type-inference-disabled

    에서 README를 RSpec에-레일 :

    RSpec에 대한 제어기 컨텍스트 메타 데이터의 설정 예 :

    describe ToolsController, :type => :controller do
        # ...
    end
    
  2. ==============================

    2.전혀 당신이 사용하는 경우 '사양 / 기능', 당신은 당신의 'spec_helper.rb'에 다음을 추가해야합니다

    전혀 당신이 사용하는 경우 '사양 / 기능', 당신은 당신의 'spec_helper.rb'에 다음을 추가해야합니다

    config.include RSpec::Rails::RequestExampleGroup, type: :feature
    
  3. ==============================

    3.RSpec에에서 사양 형식이 자동으로 파일 위치로부터 추론되지 않으며, 수동이의 spec_helper.rb이 추가로 설정해야합니다 3.X

    RSpec에에서 사양 형식이 자동으로 파일 위치로부터 추론되지 않으며, 수동이의 spec_helper.rb이 추가로 설정해야합니다 3.X

    RSpec.configure do |config|
      config.infer_spec_type_from_file_location!
    end
    

    RSpec에 업그레이드

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

    4.내 spec_helper 파일 'RSpec에 / 레일'을 필요로 추가하여 내 응용 프로그램에서이 문제를 해결 할 수 있었다.

    내 spec_helper 파일 'RSpec에 / 레일'을 필요로 추가하여 내 응용 프로그램에서이 문제를 해결 할 수 있었다.

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

    5.이에보고 다른 사람을 위해. 나는 정의되지 않은 메서드 'GET'오류를 추적하려고했다. 내 문제는 귀하의 get이 차단에 있는지 블록 메이크업을 설명에 나는 GET 있다고했다.

    이에보고 다른 사람을 위해. 나는 정의되지 않은 메서드 'GET'오류를 추적하려고했다. 내 문제는 귀하의 get이 차단에 있는지 블록 메이크업을 설명에 나는 GET 있다고했다.

  6. ==============================

    6.광고 대체함으로써 해결 PagesController이 함께 할 설명 RSpec.describe PagesController : 유형 => : 컨트롤러 DO 사양 폴더에 _spec.rb 파일입니다. 또한 대신 be_success해야 응답의 be_success .TO (응답)으로 기대할 중단 경고 사용을 방지합니다. 추신 : "rails_helper"을 필요로 추가 할 필요가 없었다.

    광고 대체함으로써 해결 PagesController이 함께 할 설명 RSpec.describe PagesController : 유형 => : 컨트롤러 DO 사양 폴더에 _spec.rb 파일입니다. 또한 대신 be_success해야 응답의 be_success .TO (응답)으로 기대할 중단 경고 사용을 방지합니다. 추신 : "rails_helper"을 필요로 추가 할 필요가 없었다.

  7. ==============================

    7.내 .rspec 파일로 내 스펙 파일이나 --require spec_helper의 상단에 'spec_helper'을 필요로 추가하는 것을 잊었다 때이 오류가 발생했습니다.

    내 .rspec 파일로 내 스펙 파일이나 --require spec_helper의 상단에 'spec_helper'을 필요로 추가하는 것을 잊었다 때이 오류가 발생했습니다.

  8. ==============================

    8.당신이 .rspec 파일을 생성하는 RSpec에 사용한 경우에서 콘텐츠를 변경해야합니다 :

    당신이 .rspec 파일을 생성하는 RSpec에 사용한 경우에서 콘텐츠를 변경해야합니다 :

    --require spec_helper
    

    에:

    --require rails_helper
    
  9. ==============================

    9.대안은 유형을 지정하는 것입니다 : 당신의 사양에 대한 요청. 예를 들면 :

    대안은 유형을 지정하는 것입니다 : 당신의 사양에 대한 요청. 예를 들면 :

    RSpec.describe "Widget management", :type => :request do
    
      it "creates a Widget and redirects to the Widget's page" do
        get "/widgets/new"
        expect(response).to render_template(:new)
    
        post "/widgets", :widget => {:name => "My Widget"}
    
        expect(response).to redirect_to(assigns(:widget))
        follow_redirect!
    
        expect(response).to render_template(:show)
        expect(response.body).to include("Widget was successfully created.")
      end
    
    end
    

    예 https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec 여기에서 가져옵니다.

  10. ==============================

    10.내가 추가 할 때 나는이 문제를 가지고 있었다

    내가 추가 할 때 나는이 문제를 가지고 있었다

    gem 'rspec'
    

    레일 프로젝트 내 Gemfile에. 그것은해야한다

    gem 'rspec'
    gem 'rspec-rails'
    

    (또는 RSpec에 레일). 후

    bundle install
    

    와 사양 디렉토리를 다시 작성

    rspec --init
    

    및 (가 사양 디렉토리에있는 경우 작동하지 않습니다) 해당 디렉토리에 xxx_spec.rb 파일을 넣어. 초보자 오류하지만 어쩌면이 누군가하는 데 도움이;) 여기에 나를 도와 준 링크의를 :

    https://www.relishapp.com/rspec/rspec-rails/docs/gettingstarted

  11. ==============================

    11.이것은 다음과 같은 조건에서 발생할 수 :

    이것은 다음과 같은 조건에서 발생할 수 :

    어느 # 1, # 2는 스펙에 설치해야합니다. 또한,이뿐만 아니라이 조건에서 발생할 수 :

    상호 참조 GH 문제 https://github.com/rails/rails-controller-testing/issues/36

  12. from https://stackoverflow.com/questions/6296235/undefined-method-get-for-rspeccoreexamplegroupnested-10x00000106db51f by cc-by-sa and MIT license