SD Ruby,

Over the holidays I embarked on a long-needed upgrade of the first Rails 
app I built, taking it from 2.3 to 3.1.  I plan to move it to 4.0 by the 
time I'm done.

Since this app was created over 6 years ago, before I understood the value 
of having test coverage, it has very little.  I've been remedying that via 
RSpec (2.14) and FactoryGirl and I'm pleased with the progress I've made 
and even discovered some bugs that weren't apparent pre-test.

The app is rather large and I need to get this upgrade done quickly since 
my customers are clamoring for more features.  I'm trying to balance basic 
"sanity checking" test coverage with the need for speed.  

I use simple_navigation to provide the links between the main menus and 
controller actions.  I thought it would be worthwhile to gin-up a bunch of 
request specs for the URLs that the menu links hit.  It seemed to me I'd at 
least have a basic "does the page for that menu link blow up?" scenario as 
a rudimentary check of the app.  But that doesn't seem to work the way I 
expected.

For example, hitting a URL via a request spec and checking for a 200 status 
passes.  But if I go to that same page in the browser I find vestiges of 
rails 2.3 that have been removed, like "error_messages_for" and the page 
throws an error.  

So I'm getting a false positive on the request spec -- how come?  Perhaps 
my understanding of what a request spec provides is flawed but I assumed an 
error in the page wouldn't allow the spec to pass.

My next attempt was to create controller specs for the controllers hit by 
the menus.  I use a before_filter in application_controller to set the 
current chapter and in trying to check that value is assigned isn't 
working.  

In the snippet below MemberController < ApplicationController.  The expect 
fails because the assigns(:chapter) returns nil.

require 'spec_helper'

describe MemberController do
  before :each do
    @chapter = FactoryGirl.create(:chapter)
    controller.stub!(:current_chapter).and_return(@chapter)
  end

  describe "GET my_home" do
    it "assigns @chapter" do
      get :my_home
      expect(assigns(:chapter)).to eq @chapter
    end
  end
end

I'm a n00bie with RSpec so perhaps my understanding is flawed.  How should 
this be setup?  Is there a better way?

Thanks,

Chris

-- 
-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
--- 
You received this message because you are subscribed to the Google Groups "SD 
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to