Lourens Naude
2006-Nov-23 23:55 UTC
[rspec-users] Some tips for testing respond_to block and making controller tests work with simply_helpful
Hi, Here''s two blog posts for those that need to test respond_to blocks and/or are currently using simply_helpful extensively. http://blog.methodmissing.com/2006/11/22/testing-different-content- types-with-rspec http://blog.methodmissing.com/2006/11/23/using-simply_helpful-with- rspec-controller-tests - Lourens
David Chelimsky
2006-Nov-24 06:12 UTC
[rspec-users] Some tips for testing respond_to block and making controller tests work with simply_helpful
Hey Lourens, Thanks for these blog posts! Just an FYI - the rails plugin is a moving target right now (especially its innards) so the monkey patching that you recommended is all going to break in the 0.7.3 release. If you look at the trunk you''ll see that the dependency on ZenTest is gone and we''re renaming modules and classes to better align w/ the rest of RSpec. If you''re finding deficiencies in the tool we''d love to hear that feedback in the form of feature requests and/or patches. If you''re interested, give http://rspec.rubyforge.org/contribute.html a read and have at it. Cheers, David On 11/23/06, Lourens Naude <lourens at rentacarhire.com> wrote:> Hi, > > Here''s two blog posts for those that need to test respond_to blocks > and/or are currently using simply_helpful extensively. > > http://blog.methodmissing.com/2006/11/22/testing-different-content- > types-with-rspec > http://blog.methodmissing.com/2006/11/23/using-simply_helpful-with- > rspec-controller-tests > > - Lourens > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
Lourens Naude
2006-Nov-24 19:29 UTC
[rspec-users] Some tips for testing respond_to block and making controller tests work with simply_helpful
David, Yes, just hacked it up quick and posted as I needed it *yesterday*. I''ll have a look at trunk later today or tomorrow. There''s some issues with the render rspec assertions when using content types: # controller action def show respond_to do |format| format.html # show.rhtml format.xml { render :xml => @coupon.to_xml } end end # specs setup do rentacar_host(''account'') authorized get :show, {:locale => ''en'', :id => 1 }, :html end specify "should render show.rhtml" do controller.should_have_rendered :action => ''show'' #specification fails end specify "should render show.rhtml" do controller.should_have_rendered( :action => "show", :content_type => Mime::HTML ) #this one passes, needs the explicit content type when testing actions with respond_to blocks end #It would also be nice to have controller_instance.should_redirect_to ''something'' pickup RJS redirects eg. page.redirect_to target_url() as well #HTML content type specify "should redirect back to plans" do controller.should_redirect_to ''http://www.rentacars.com/en/app/ plans'' get :new, { :plan_id => 20, :locale => ''en''}, :html response.should_be_redirect end #JS content type setup do rentacar_host(''account'') authorized @order_before = Account.find(2).coupons.collect(&:id) xhr :put, :sort, { :coupons => { 0 => ''1'', 1 => ''2'', 2 => ''4'' }, :locale => ''en''} end #ugly ugly hack specify "should redirect to coupons" do response.body.should_include ''http://account.rentacars.com/en/ admin/coupons'' response.body.should_include ''window.location.href'' end This would ideally we covered by the should_redirect_to assertion and not the RJS specific ones. This redirect is client side, however, and can''t be picked up matching response code 302 ... and thus wouldn''t work in isolated controller tests (without view integration). I''ll look into this as well. - Lourens On 2006/11/24, at 06:12, David Chelimsky wrote:> Hey Lourens, > > Thanks for these blog posts! > > Just an FYI - the rails plugin is a moving target right now > (especially its innards) so the monkey patching that you recommended > is all going to break in the 0.7.3 release. If you look at the trunk > you''ll see that the dependency on ZenTest is gone and we''re renaming > modules and classes to better align w/ the rest of RSpec. > > If you''re finding deficiencies in the tool we''d love to hear that > feedback in the form of feature requests and/or patches. If you''re > interested, give http://rspec.rubyforge.org/contribute.html a read and > have at it. > > Cheers, > David > > On 11/23/06, Lourens Naude <lourens at rentacarhire.com> wrote: >> Hi, >> >> Here''s two blog posts for those that need to test respond_to blocks >> and/or are currently using simply_helpful extensively. >> >> http://blog.methodmissing.com/2006/11/22/testing-different-content- >> types-with-rspec >> http://blog.methodmissing.com/2006/11/23/using-simply_helpful-with- >> rspec-controller-tests >> >> - Lourens >> _______________________________________________ >> 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