How to write render expectation in Controller Spec?

Hello All, I am a rspec beginner and I am trying to find a way out to write render expectation in controller spec.I used the following ways render '/channels/createchannel.html.erb' view.should_receive(:render).with(:action => "createchannel") ChannelsController.expect_render(:action => "createchannel") ChannelsController.render_template(:action => "createchannel") controller.expect_render(:action => "createchannel") controller.render_template(:action => "createchannel")

All fail giving a NoMethodError

Check out http://rspec.info/rails/writing/controllers.html Basically you need to do a get or post (in your case probably post :createchannel) and then there's a response object you can have expectations on, such as response.should render_template('createchannel.html').

Note, I'm not really sure what the ChannelsController.expect_render(...) does, I'm unfamiliar with that syntax.

Thanks, \Peter

One good way to see how to write controller specs is to generate one with script/generate (or rails generate if you're using Rails 3). For example, you could create a new rails app (or use your existing one), and generate an rspec_scaffold. Something like this:

rails generate rspec_scaffold Widget name:string

.. that will generate a controller spec that will work out of the box if you are using default crud methods.

-Bryan