[rspec-users] How to use expect_render?

aslak hellesoy aslak.hellesoy at gmail.com
Mon Aug 13 04:48:51 EDT 2007


On 8/13/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> On 8/13/07, Shaker <flyeminent at hotmail.com> wrote:
> >
> > Hello, Aslak:
> >     I know we could do template.expect_render somehow, although I haven't
> > tried that out. But the rspec developer
>
> Aslak is one of the rspec developers. :)
>
> > said that we could now actually use
> > controller.expect_render in controller specs, which caused me confused. You
> > may want to have a look at this:
> > http://rspec.rubyforge.org/documentation/rails/writing/controllers.html
> > writing controller spec
> >     Thanks, regards.
> >
> > aslak hellesoy wrote:
> > >
> > > On 8/13/07, Shaker <flyeminent at hotmail.com> wrote:
> > >>
> > >> Hi:
> > >>     I am a rspec beginner. I have scratched my head for the whole
> > >> afternoon,
> > >> trying to figure out a way of writing render expectation in controller
> > >> spec.
> > >> However, I failed. It kept telling me that the 'expect_render' was an
> > >> undefined method. I have installed rspec 1.0.8 and rspec_on_rails as
> > >> well.
> > >> Below is the controller to be tested.
> > >>
> > >> Controller
> > >>     def index
> > >>       pre = Array.new
> > >>       render :partial=>'index', :layout=>false, :locals=>{:pre=>pre}
> > >>     end
> > >>
> > >> My controller spec
> > >>     before do
> > >>       @controller = MyController.new
> > >>     end
> > >>     it "should render the index partial" do
> > >>       @controller.expect_render(:partial=>'index', :layout=>false) #I
> > >> don't
> > >> know how to expect the :locals
> > >>     end
>
> Don't create an instance of the controller directly. Use either:
>
> describe MyController do
>   ...
>
> or
>
> describe "MyController" do
>   controller_name :my
>   ...
>

Doh, I missed that.

> RSpec mixes some methods into the controller in these cases (including
> expect_render) but does not in the case you describe because it
> initializes the controller directly.
>

I wonder if this is a common mistake among newcomers to RSpec (since
Rails/Test::Unit does it that way). I don't think we should build in
any warning mechanisms, but I'll update the page mentioning this.

Aslak

> Cheers,
> David
>
>
> > >>
> > >> As I mentioned, the spec failed , saying that "Undefined method
> > >> 'expect_render' ". There might be some mistakes in my "before" block. Do
> > >> I
> > >> need to mock the controller or something else? Anyway, do any one know
> > >> how
> > >> to fix the problem? It will be even better if you guys could show me a
> > >> piece
> > >> of example code.
> > >>     Thanks!!
> > >
> > > Have you looked here?
> > >
> > > http://rspec.rubyforge.org/documentation/rails/writing/views.html
> > >
> > > (you must use template.expect_render)
> > > Or perhaps you're looking for response.should
> > > render_template("path/to/template/for/action")
> > >
> > > HTH,
> > > Aslak
> > >
> > >> --
> > >> View this message in context:
> > >> http://www.nabble.com/How-to-use-expect_render--tf4259590.html#a12121894
> > >> Sent from the rspec-users mailing list archive at Nabble.com.
> > >>
> > >> _______________________________________________
> > >> 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
> > >
> > >
> >
> > --
> > View this message in context: http://www.nabble.com/How-to-use-expect_render--tf4259590.html#a12122511
> > Sent from the rspec-users mailing list archive at Nabble.com.
> >
> > _______________________________________________
> > 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