Hi David,
Sounds great! Looking forward to more documentation :)
I have now gone through all the examples in the RSpec book and got
them working with the latest version of RSpec 2 and Rails 3 beta4.
I only have one loose end:
shared_examples_for "a template that renders the messages/form
partial" do
it "renders the messages/form partial" do
template.should_receive(:render).with(
:partial => "form",
:locals => { :message => assigns[:message] }
)
render
end
end
undefined local variable or method `template' for
#<RSpec::Core::ExampleGroup::Nested_8:0x00000100e019a0>
Changing template to _view as you instructed previously (I think)
_view.should_receive(:render).with(
:partial => "form",
:locals => { :message => assigns[:message] }
)
#<ActionView::Base:0x00000100e98c88> received :render with unexpected
arguments
expected: ({:partial=>"form", :locals=>{:message=>nil}})
got: ({:template=>"messages/edit.html.erb"}, {})
But this is my edit.html
<%= render "form", :message => @message %>
So _view only contains info on the view. How do I get info on the
templates called as part of the rendering process?
On Jun 13, 3:29 pm, David Chelimsky <[email protected]> wrote:
> On Jun 13, 2010, at 6:49 AM, Kristian Mandrup wrote:
>
> > assigns(:message).should eq(@message)
>
> > assign(:message, stub("Message", :text => "Hello world!"))
>
> > Hmm, so 'assign' to assign a variable and 'assigns' to read an
> > assigned variable?
> > We need to update the RSpec 2 wiki or somewhere with all these API
> > changes so it is clear to everyone.
>
> There's already info about assign(key, val) on the rspec-rails
> readme:http://github.com/rspec/rspec-rails. I'll add something about
> assigns(:key) as well.
>
> Keep in mind that assign(k,v) is used in view specs to provide data to the
> view, whereas assigns(key) is used in controller specs to express
> expectations about what the controller does.
>
> As for the wiki, let's hold off on that for now. There is currently
> insufficient documentation in too many places, and the wiki has, at times,
> caused more confusion than benefit. I've got a few thoughts rolling around
> about how to best address this, and I'll follow up on that in a separate
> thread in the next couple of days.
>
> Cheers,
> David
>
>
>
> > On Jun 11, 9:08 am, David Chelimsky <[email protected]> wrote:
> >> On Thu, Jun 10, 2010 at 4:41 PM, <[email protected]> wrote:
> >>> I might be missing something basic here, but I'm stumped on this
> >>> error:
>
> >>> model code:
>
> >>> class CachedStat < ActiveRecord::Base
> >>> def self.create_stats_days_ago(days_ago, human_id)
> >>> d = Date.today - days_ago.day
> >>> �...@prs = PageRequest.find(:all, :conditions => [ "owner_type =
> >>> 'Human' and owner_id = ? and created_at = ?", human_id, d] )
> >>> end
> >>> end
>
> >>> spec code:
>
> >>> it "should create stats for the specified number of days in the
> >>> past" do
> >>> CachedStat.create_stats_days_ago(1, Human.first.id)
> >>> assigns[:prs].should eql("foo")
> >>> end
>
> >>> The error is: undefined local variable or method `assigns' for
> >>> #<Spec::Rails::Example::ModelExampleGroup::Subclass_1:0x2fbac28>
>
> >>> I feel like I'm overlooking something obvious but it's invisible to
> >>> me. Any suggestions?
>
> >> assigns is for controller and view specs, not model specs. What is it
> >> you're trying to specify here?
> >> _______________________________________________
> >> rspec-users mailing list
> >> [email protected]http://rubyforge.org/mailman/listinfo/rspec-users
> > _______________________________________________
> > rspec-users mailing list
> > [email protected]
> >http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> [email protected]http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users