[rspec-users] How to use expect_render?

David Chelimsky dchelimsky at gmail.com
Mon Aug 13 04:41:47 EDT 2007


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
  ...

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.

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
>


More information about the rspec-users mailing list