There's a whole book by this guy Everyday Testing with Rails Aaron Sumner. 
But there's a short blog series by the same guy 
here<http://everydayrails.com/2012/03/12/testing-series-intro.html>. 
The factory girl syntax is older, but it uses rspec 2 syntax. 

Everyday Rails Testing with RSpec: The book. But this 5 page blog series i 
found really useful, as he goes into controller and request testing with 
rspec http://everydayrails.com/2012/03/12/testing-series-intro.html. 
If you do the test through capybara the test in a request test. I don't 
know a lot of details but the blog i linked to goes over it in the last 
chapter. 

*Or* the test you have setup is fine, you just need to have a 
render_template validation. The current test just seems to be checking that 
the instance variable is assigned. 

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



On Saturday, January 11, 2014 10:53:26 AM UTC-8, Chris McCann wrote:
>
> 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