2011-08-28 38 views
4

,我發現了以下錯誤:如何在控制器的RSpec,誤碼測試設計:未定義的方法`分配」爲#<:: RSpec的核心:: ExampleGroup :: Nested_1:0x0000010597f4b8>

undefined method `assign' for #<RSpec::Core::ExampleGroup::Nested_1:0x0000010597f4b8> 

當試圖按照the docs進行測試時。

這裏的是我:

user_controller_spec.rb

require 'spec_helper' 

describe "devise/sessions/new.html.erb" do 
    let(:user) do 
    stub_model(User).as_new_record 
    end 

    before do 
    assign(:user, user) 
    # Devise provides resource and resource_name helpers and 
    # mappings so stub them here. 
    @view.stub(:resource).and_return(user) 
    @view.stub(:resource_name).and_return('user') 
    @view.stub(:devise_mapping).and_return(Devise.mappings[:user]) 
    end 

    it "renders a form to sign the user in" do 
    render 
    rendered.should have_selector("form", 
            :method => "post", 
            :action => user_session_path 
           ) do |form| 
     form.should have_selector("input", :type => "submit") 
    end 
    end 
end 

建議?謝謝

回答

4

Rspec已經改變了一點,它現在使用assigns

Doc here

+0

謝謝,很想得到你對我的後續問題的反饋。我真的失去了如何開始和正確的測試設計:http://stackoverflow.com/questions/7223549/howto-write-tests-for-devise-omniauth-in-my-rails-3-app – AnApprentice

+0

當更改爲指定它仍然錯誤:失敗/錯誤:分配(:用戶,用戶) 參數錯誤: 錯誤的參數數量(2爲1) – AnApprentice

+0

因此,我將其更改爲:assigns [:user] = user which which it現在錯誤未定義的本地變量或方法'渲染'爲# AnApprentice

相關問題