On 8/13/07, David Chelimsky <[EMAIL PROTECTED]> wrote: > On 8/13/07, Shaker <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 > > >> [email protected] > > >> http://rubyforge.org/mailman/listinfo/rspec-users > > >> > > > _______________________________________________ > > > rspec-users mailing list > > > [email protected] > > > 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 > > [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
