Re: [rspec-users] Controller stub and helper spec with lastest beta

2010-07-25 Thread chatgris
Thank you for those advices David.

It wasn't related to bundler.

I did a big clean up in spec_helper.rb and in my gem list. I still had
rspec.rake in lib/tasks/ .

Now, everything works as expected via autotest or rake:spec.


Thanks.

Julien



On 24 juil, 17:24, David Chelimsky dchelim...@gmail.com wrote:
 On Jul 24, 2010, at 9:33 AM, chatgris wrote:

  Hello,

  I have two issues with beta 2.0.0.beta.18. First, here's the gems :

  gem rails, 3.0.0.beta4
  gem mongoid, 2.0.0.beta10

  group :test do
   gem rspec-rails, 2.0.0.beta.18
   gem factory_girl_rails, 1.0
  end

  My spec_helper 
  :http://github.com/chatgris/blabbr/blob/spec/spec/spec_helper.rb

 You've got some unnecessary stuff in spec_helper.rb. Try this:

 1. Include rspec-rails in the :development group so you can see its rake 
 tasks and generators [1]
 2. Move all the configuration (except mock_with :rspec) from spec_helper to 
 another file in spec/support/.
 2. Regenerate spec_helper by running script/rails generate rspec:install

 [1]http://blog.davidchelimsky.net/2010/07/11/rspec-rails-2-generators-an...

  First issue is related to stubbing the current_user method in
  controller.

  describe 'current_user == added_by' do

     before :all do
      �...@current_user = Factory.create(:user)
      �...@smiley = Factory.create(:smiley)
     end

 This is probably not related to these issues, but it's generally better to 
 create DB-backed objects (i.e. using Factory.create) in before(:each) blocks 
 so they get the benefit of Rails' transaction management.



     before :each do
       controller.stub!(:logged_in?).and_return(true)
       controller.stub!(:current_user).and_return(@current_user)
     end

     it 'should be able to see index' do
       get :index
       response.should be_success
     end
  end

  current_user is defined in application_controller.rb

  That code have this result :

  SmiliesController current_user == added_by should be able to see index
     Failure/Error: controller.stub!(:logged_in?).and_return(true)
     undefined method `stub!' for #SmiliesController:0xb5e848b4
     # ./spec/controllers/smilies_controller_spec.rb:36

 This suggests that something is getting in the way of loading rspec-mocks 
 correctly. Please follow directions above and let me know if that solves it.



  The other issue is related to helpers specs. Considers this code :

  require 'spec_helper'

  describe LinkHelper do
   before :all do
    �...@user = Factory.create(:creator)
    �...@topic = Factory.build(:topic)
   end

   it displays a 80px width gravatar link to the user page do
     helper.link_to_avatar(@user).should == a href=\/users/creator
  \img alt=\4f64c9f81bb0d4ee969aaf7b4a5a6f40\ src=\http://
 www.gravatar.com/avatar/4f64c9f81bb0d4ee969aaf7b4a5a6f40.jpg?size=80\
  //a
   end

  end

  That gives this error :

  LinkHelper displays a 80px width gravatar link to the user page
     Failure/Error: Unable to find matching line from backtrace
     undefined local variable or method `example' for
  #RSpec::Core::ExampleGroup::Nested_8:0xb5fc4bac
     # /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
  rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
  example/helper_example_group.rb:54:in `_controller_path'

 I think this is the source of the problem. It looks like bundler is loading 
 some version of rspec-rails other than the 2.0.0.beta.18 that is specified 
 in the Gemfile.

 What version of bundler are you using?

     # /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
  rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
  example/helper_example_group.rb:61

  Thanks for your help.
  ___
  rspec-users mailing list
  rspec-us...@rubyforge.org
 http://rubyforge.org/mailman/listinfo/rspec-users

 ___
 rspec-users mailing list
 rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


Re: [rspec-users] Controller stub and helper spec with lastest beta

2010-07-24 Thread David Chelimsky
On Jul 24, 2010, at 9:33 AM, chatgris wrote:

 Hello,
 
 I have two issues with beta 2.0.0.beta.18. First, here's the gems :
 
 gem rails, 3.0.0.beta4
 gem mongoid, 2.0.0.beta10
 
 group :test do
  gem rspec-rails, 2.0.0.beta.18
  gem factory_girl_rails, 1.0
 end
 
 My spec_helper : 
 http://github.com/chatgris/blabbr/blob/spec/spec/spec_helper.rb

You've got some unnecessary stuff in spec_helper.rb. Try this:

1. Include rspec-rails in the :development group so you can see its rake tasks 
and generators [1]
2. Move all the configuration (except mock_with :rspec) from spec_helper to 
another file in spec/support/.
2. Regenerate spec_helper by running script/rails generate rspec:install

[1] 
http://blog.davidchelimsky.net/2010/07/11/rspec-rails-2-generators-and-rake-tasks-part-ii/

 First issue is related to stubbing the current_user method in
 controller.
 
 describe 'current_user == added_by' do
 
before :all do
  @current_user = Factory.create(:user)
  @smiley = Factory.create(:smiley)
end

This is probably not related to these issues, but it's generally better to 
create DB-backed objects (i.e. using Factory.create) in before(:each) blocks so 
they get the benefit of Rails' transaction management.

before :each do
  controller.stub!(:logged_in?).and_return(true)
  controller.stub!(:current_user).and_return(@current_user)
end
 
it 'should be able to see index' do
  get :index
  response.should be_success
end
 end
 
 current_user is defined in application_controller.rb
 
 That code have this result :
 
 SmiliesController current_user == added_by should be able to see index
Failure/Error: controller.stub!(:logged_in?).and_return(true)
undefined method `stub!' for #SmiliesController:0xb5e848b4
# ./spec/controllers/smilies_controller_spec.rb:36

This suggests that something is getting in the way of loading rspec-mocks 
correctly. Please follow directions above and let me know if that solves it.

 The other issue is related to helpers specs. Considers this code :
 
 require 'spec_helper'
 
 describe LinkHelper do
  before :all do
@user = Factory.create(:creator)
@topic = Factory.build(:topic)
  end
 
  it displays a 80px width gravatar link to the user page do
helper.link_to_avatar(@user).should == a href=\/users/creator
 \img alt=\4f64c9f81bb0d4ee969aaf7b4a5a6f40\ src=\http://
 www.gravatar.com/avatar/4f64c9f81bb0d4ee969aaf7b4a5a6f40.jpg?size=80\
 //a
  end
 
 end
 
 That gives this error :
 
 LinkHelper displays a 80px width gravatar link to the user page
Failure/Error: Unable to find matching line from backtrace
undefined local variable or method `example' for
 #RSpec::Core::ExampleGroup::Nested_8:0xb5fc4bac
# /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
 rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
 example/helper_example_group.rb:54:in `_controller_path'

I think this is the source of the problem. It looks like bundler is loading 
some version of rspec-rails other than the 2.0.0.beta.18 that is specified in 
the Gemfile.

What version of bundler are you using?


# /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
 rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
 example/helper_example_group.rb:61
 
 
 Thanks for your help.
 ___
 rspec-users mailing list
 rspec-users@rubyforge.org
 http://rubyforge.org/mailman/listinfo/rspec-users

___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


Re: [rspec-users] Controller stub and helper spec with lastest beta

2010-07-24 Thread Wincent Colaiuta
El 24/07/2010, a las 16:33, chatgris escribió:

 I have two issues with beta 2.0.0.beta.18. First, here's the gems :
 
 gem rails, 3.0.0.beta4
 gem mongoid, 2.0.0.beta10
 
 group :test do
  gem rspec-rails, 2.0.0.beta.18
  gem factory_girl_rails, 1.0
 end

[snip]

 That gives this error :
 
 LinkHelper displays a 80px width gravatar link to the user page
Failure/Error: Unable to find matching line from backtrace
undefined local variable or method `example' for
 #RSpec::Core::ExampleGroup::Nested_8:0xb5fc4bac
# /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
 rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
 example/helper_example_group.rb:54:in `_controller_path'
# /home/chatgris/.bundle/ruby/1.8/bundler/gems/rspec-
 rails-863ffee12bd6030ece577b07c39297c14aacad85-master/lib/rspec/rails/
 example/helper_example_group.rb:61

Strange that you've asked for 2.0.0.beta.18 and Bundler is giving you a Git 
version. What version of Bundler are you using?

Given that running_example was renamed to example in commit f3de9311, I 
wonder if you have some kind of Bundler issue which means you're running a 
newer version of rspec-rails against an older version of rspec-core.

Cheers,
Wincent


___
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users