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

Reply via email to