[rspec-users] spec'ing view render partial collection, local variable not found

David Chelimsky dchelimsky at gmail.com
Fri Oct 5 18:11:31 EDT 2007


On 10/5/07, Andrew WC Brown <omen.king at gmail.com> wrote:
> 1)
> '/games/_game.rhtml should show game name' FAILED
> expected /The Battle for Blaze/, got ""
> ./spec/views/games/_game.rhtml_spec.rb:39:
>
>   def before
>     game_1 = mock_model(Game,
>       :name => 'The Battle for Blaze',
>       :salt_grains => 5000000,
>       :people => 5000000,
>       :days => nil,
>       :created_at => "Mon Oct 01 00:02:44 -0400 2007",
>       :enabled => true)
>     game_1.should_receive(:name).and_return("The Battle for
> Blaze")
>     game_1.should_receive(:salt_grains).and_return(5000000)
>     game_1.should_receive(:people).and_return(5000000)
>     game_1.should_receive(:days).and_return(nil)
>     game_1.should_receive(:created_at).and_return("Mon Oct
> 01 00:02:44 -0400 2007")
>     game_1.should_receive(:enabled).and_return(true)
>
>     game_2 = mock_model(Game,
>       :name => 'Epicbattlegrounds',
>       :salt_grains => 30000000,
>       :people => 20000000,
>       :days => 100,
>       :created_at => "Mon Sept 01 12:02:44 -0400 2007",
>       :enabled => false)
>
> game_2.should_receive(:name).and_return("Epicbattlegrounds")
>
> game_2.should_receive(:salt_grains).and_return(30000000)
>     game_2.should_receive(:people).and_return(20000000)
>     game_2.should_receive(:days).and_return(100)
>     game_2.should_receive(:created_at).and_return("Mon Sept
> 01 12:02:44 -0400 2007")
>     game_2.should_receive(:enabled).and_return(false)
>     @games = [game_1, game_2]
>     assigns[:games] = [game_1, game_2]
>   end
>
>   it "should show game name" do
>     response.should have_text(/The Battle for Blaze/)
>     render :partial =>"game", :collection => @games

Switch these around:

render :partial =>"game", :collection => @games
response.should have_text(/The Battle for Blaze/)


>   end
>
> I think the local variable is showing up nil because my specs in the
> index.rhtml were failing when they were fine before and they were saying
> they didn't know what this game variable was.
>
> Any ideas?
>
>
> On 10/5/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> > On 10/5/07, Andrew WC Brown <omen.king at gmail.com> wrote:
> > > I'm trying to spec out a render partial collection but I get the
> following
> > > error
> > >
> > > 2)
> > > NoMethodError in '/games/_game.rhtml should show game name'
> > > undefined method `body' for #<#<Class:0x316580c>:0x2f1154c>
> > >
> /Volumes/EXTERNAL/web/omenking.ca/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb:12:in
> > > `matches?'
> > > ./spec/views/games/_game.rhtml_spec.rb:39:
> > >
> > >   def before
> > >     game = mock_model(Game,
> > >       :name => 'The Battle for Blaze',
> > >       :salt_grains => 5000000,
> > >       :people => 5000000,
> > >       :days => nil,
> > >       :created_at => "Mon Oct 01 00:02:44 -0400 2007",
> > >        :enabled => true)
> > >     game.should_receive(:name).and_return("The Battle for Blaze")
> > >
> game.should_receive(:salt_grains).and_return(5000000)
> > >     game.should_receive(:people).and_return(5000000)
> > >     game.should_receive(:days).and_return(nil)
> > >     game.should_receive(:created_at).and_return("Mon Oct 01 00:02:44
> -0400
> > > 2007")
> > >     game.should_receive(:enabled).and_return(true)
> > >
> > >
> > >     assigns[:games] = [game]
> > >   end
> > >
> > >   it "should show game name" do
> > >     template.should have_text(/The Battle for Blaze/)
> >
> > response.should have_text ....
> >
> > (not template.should ...)
> >
> > >     render :partial =>"game", :collection => @games
> > >   end
> > >
> > > _______________________________________________
> > > rspec-users mailing list
> > > rspec-users at rubyforge.org
> > > http://rubyforge.org/mailman/listinfo/rspec-users
> > >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list