2013-04-19 2 views
0

을 params` 나는 나는 아래의 코드를 실행하려고 할 때 그러나 작업을해야 다음 컨트롤러 RSpec에 시험이 : 나는 다음과 같은 출력을 얻고 그러나정의되지 않은 지역 변수 또는 방법은`RSpec에

require 'spec_helper' 
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 


describe UsersController do 
    include Devise::TestHelpers #Include devise test helpers 
    render_views # Render devise views 

    describe "GET 'show'" 

    before(:each) do 
    @user = User.find(params[:id]) 
    @attr = {:initials => 'EU', :name => 'Example', :full_name => 'Example User', 
      :email => '[email protected]', :password => 'password', :password_confirmation => 'password' 

      #@attr = User.all 
    } 
    end 

    it 'should be successful when showing OWN details' do 
    get :show, :id => @attr 
    response.should be_success 
    end 

    it 'should find the correct user' do 
    get :show, :id => @attr 
    assigns(@attr).should == @attr 
    end 
end 

: Undefined locacl variable or method 'params' for RSPRC 내가 생각을 이 설정은 정확해야합니다.

+0

는 스택 추적입니다. 문제가있는 코드 줄은 무엇입니까? http://i.imgur.com/xdY0JF4.png –

+0

@WayneConrad 나는 다음과 같은 출력을 얻을 메시지는 말합니다 : 11 번 줄에 오류가 있습니다. 추측 컨대 : 각각은 cuplprit입니다. –

답변

2

나는 몇 가지가 여기에 무슨 참조하십시오. 전과 문 내에서

귀하의 전화 PARAMS은 어디 ID는 이제까지 설정되어 있지만? 이 코드에서 사용자 ID가 실제로 결정되거나 발견 된 위치를 어디에서 확인할 수 있습니까? 존재하는 id 나 User.first와 같은 것을 사용하여 @user를 명시 적으로 설정해야합니다. 두 번 spec_helper을 포함해야하는 이유

다음

대신 당신이

get :show, :id => @user.id 

를 호출해야

get :show, :id => @attr 

를 호출 또한 잘 모르겠어요. 2 번 줄은 제거 할 수 있어야합니다.

한 가지 더 - 양수인 (@attr) .should == @attr은 이해가되지 않습니다. 그것은 assigns (: attr) .should == @attr이어야합니다. 그렇지 않으면 @attr의 값을 assigns 메서드로 전달하게됩니다. 그 실패와 함께

+0

내가 변경했지만 여전히 같은 출력을 얻을 - - http://i.imgur.com/xdY0JF4.png –

+0

당신이 오류를 – Hartmut

+0

@Hartmut 무엇을해야합니까 –

관련 문제