On Tuesday, 1 September 2015 14:40:39 UTC-4, Ruby-Forum.com User wrote: > > please help solve the problem. > > poll controller: > > class PollsController < ApplicationController > def index > @user = User.find(params[:user_id]) > @polls = @user.polls.paginate(page: params[:page], :per_page => > 10).order(title: :DESC) > end > end > > route: > > user_polls GET /users/:user_id/polls(.:format) > polls#index > > polls_controller_spec.rb: > RSpec.describe PollsController, type: :controller do > describe "GET #index" do > before :all do > @user = FactoryGirl.create(:user) > end > > > it "assign user as @user" do > get :index, user_id: @user.id > expect(assigns(:user)).to eq(@user) > end > > > it "assigns polls as @polls" do > get :index, user_id: @user.id > expect(assigns(:polls)).to eq([@poll]) > end > > > it "redirects to the index view" do > get :index, user_id: @user.id > expect(response).to render_template("index") > end > end > end > > after run tests, i get follow error message: > > kalinin@kalinin ~/rails/phs $ rspec > spec/controllers/polls_controller_spec.rb > .F. > Failures: > 1) PollsController GET #index assigns polls as @polls > Failure/Error: expect(assigns(:polls)).to eq([@poll]) > expected: [nil] > got: #<ActiveRecord::AssociationRelation []> > (compared using ==) > Diff: > @@ -1,2 +1,2 @@ > -[nil] > +[] > # ./spec/controllers/polls_controller_spec.rb:16:in `block (3 > levels) in <top (required)>' > > Finished in 1.23 seconds (files took 2.81 seconds to load) > 3 examples, 1 failure > Failed examples: > rspec ./spec/controllers/polls_controller_spec.rb:14 # PollsController > GET #index assigns polls as @polls > > > as you can see problem in test 'assigns polls as @polls'. I do not > understand why array @polls is empty > > Unless you accidentally removed it when posting here, you aren't creating any Poll records. `@poll` is also not set to anything...
--Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/21d88a9b-7ea1-4bf8-9b9e-3858f62da80c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.