On Dec 6, 2010, at 4:29 AM, Dean wrote: > I'm completely new to RSpec (and fairly new to Rails, too.) I'm > working on an existing application that has an Admin::BaseController > and sub-controllers such as Admin:TestimonialsController: > > class Admin::BaseController < ApplicationController > end > > class Admin::TestimonialsController < Admin::BaseController > > def new > @page_title = "Create New Testimonial" > end > end > > I'm trying to write very basic tests for my Testimonials controller, > like so: > > [testimonials_controller_spec.rb] > > require 'spec_helper' > > describe Admin::TestimonialsController do > integrate_views > > describe "GET 'new'" do > it "should be successful" do > get 'new' > response.should be_success > end > > it "should have the right title" do > get 'testimonials/new' > response.should have_tag("title", /Create New Testimonial/) > end > end > end > > I've created the 'new' view and it gets the right title tag, but the > tests fail: > > 1) > 'Admin::TestimonialsController GET 'new' should render the create > testimonial template' FAILED > expected success? to return true, got false > /Users/Lowell/rails_projects/genlighten_dr/spec/controllers/admin/ > testimonials_controller_spec.rb:9: > > 2) > 'Admin::TestimonialsController GET 'new' should have the right title' > FAILED > Expected at least 1 element matching "title", found 0. > <false> is not true. > /Users/Lowell/rails_projects/genlighten_dr/spec/controllers/admin/ > testimonials_controller_spec.rb:14: > > I suspect it has something to do with the path to my views. Because > the testimonials sub-controller inherits from the admin > BaseController, both testimonials controllers and views are in > subdirectories, e.g.: > > app/controllers/admin/testimonials_controller.rb > > and > > app/views/admin/testimonials/new.html.erb > > Should my tests say something like: > > get 'admin/testimonials/new' instead of get 'new'? Or am I making a > less subtle mistake? > > Thanks, > > Dean > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
No the path shouldn't matter. When you do get 'new' you're saying, "make a GET request to the 'new' action of this controller" -- it has nothing to do with layouts. My two guesses is that there's a 500 error somewhere, or you have a filter that is redirecting a login page and need to do some setup in order to get past it. To check the first guess, tail -f log/test.log when you run your test. See if there's an exception backtrace in there. To check the second guess, inspect the response to see if it's a redirect or something else. Pat _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users