Dan Steinicke
2010-Jan-20 18:00 UTC
[rspec-users] [rails] undefined method `handling_predicate!''
I''m trying to use authlogic and factory_girl with rspec and I am
getting an error I don''t understand. Basically I have this failing
spec:
it "should succeed in creating a user from a factory" do
testuser = Factory.create(:user)
debugger
testuser.should be_valid
end
When I stop in the debugger I see this:
(rdb:1) testuser.valid?
true
(rdb:1) testuser.should be_valid
NoMethodError Exception: undefined method `handling_predicate!'' for
#<Spec::Matchers::Be:0x25a9cac @args=[:be_valid]>
My (limited) understanding of rSpec is that if the "testuser.valid?"
works then "testuser.should be_valid" should work as well.
I''m
confused because its not working.
Can someone help me understand what is going on here?
I am using the following gem versions:
rspec (1.3.0)
rspec-rails (1.3.2)
authlogic (2.1.3)
factory_girl (1.2.3)
rails (2.3.5)
I have uninstalled/ reinstalled rspec, rspec-rails and rerun
script/generate rspec letting it overwrite everything.
Gist with full terminal output from running the spec and files:
http://gist.github.com/282045
spec/models/user_spec.rb
spec/spec_helper.rb
spec/factories/users.rb
thanks
Dan Steinicke
David Chelimsky
2010-Jan-21 03:07 UTC
[rspec-users] [rails] undefined method `handling_predicate!''
On Wed, Jan 20, 2010 at 12:00 PM, Dan Steinicke <dansteinicke at gmail.com> wrote:> I''m trying to use authlogic and factory_girl with rspec ?and I am > getting an error I don''t understand. ?Basically I have this failing > spec: > > it "should succeed in creating a user from a factory" do > ? ? testuser = Factory.create(:user) > ? ? debugger > ? ? testuser.should be_valid > end > > When I stop in the debugger I see this: > > (rdb:1) testuser.valid? > true > (rdb:1) testuser.should be_valid > NoMethodError Exception: undefined method `handling_predicate!'' for > #<Spec::Matchers::Be:0x25a9cac @args=[:be_valid]> > > My (limited) understanding of rSpec is that if the "testuser.valid?" > works then "testuser.should be_valid" should work as well. ?I''m > confused because its not working. > > Can someone help me understand what is going on here? > > I am using the following gem versions: > rspec (1.3.0) > rspec-rails (1.3.2) > authlogic (2.1.3) > factory_girl (1.2.3) > rails (2.3.5) > > I have uninstalled/ reinstalled rspec, rspec-rails and rerun > script/generate rspec letting it overwrite everything. > > Gist with full terminal output from running the spec and files: > http://gist.github.com/282045 > spec/models/user_spec.rb > spec/spec_helper.rb > spec/factories/users.rb > > thanks > Dan SteinickeHey Dan, If you''re seeing that error it means you have an older version of rspec-rails than 1.3.2 that is being loaded. Try running the spec with --backtrace so you can see a full backtrace. Do you see any other versions being loaded? Maybe from vendor/plugins?
On Jan 20, 7:07?pm, David Chelimsky <dchelim... at gmail.com> wrote:> On Wed, Jan 20, 2010 at 12:00 PM, Dan Steinicke <dansteini... at gmail.com> wrote: > > I''m trying to use authlogic and factory_girl with rspec ?and I am > > getting an error I don''t understand. ?Basically I have this failing > > spec: > > > it "should succeed in creating a user from a factory" do > > ? ? testuser = Factory.create(:user) > > ? ? debugger > > ? ? testuser.should be_valid > > end > > > When I stop in the debugger I see this: > > > (rdb:1) testuser.valid? > > true > > (rdb:1) testuser.should be_valid > > NoMethodError Exception: undefined method `handling_predicate!'' for > > #<Spec::Matchers::Be:0x25a9cac @args=[:be_valid]> > > > My (limited) understanding of rSpec is that if the "testuser.valid?" > > works then "testuser.should be_valid" should work as well. ?I''m > > confused because its not working. > > > Can someone help me understand what is going on here? > > > I am using the following gem versions: > > rspec (1.3.0) > > rspec-rails (1.3.2) > > authlogic (2.1.3) > > factory_girl (1.2.3) > > rails (2.3.5) > > > I have uninstalled/ reinstalled rspec, rspec-rails and rerun > > script/generate rspec letting it overwrite everything. > > > Gist with full terminal output from running the spec and files: > >http://gist.github.com/282045 > > spec/models/user_spec.rb > > spec/spec_helper.rb > > spec/factories/users.rb > > > thanks > > Dan Steinicke > > Hey Dan, > > If you''re seeing that error it means you have an older version of > rspec-rails than 1.3.2 that is being loaded. Try running the spec with > --backtrace so you can see a full backtrace. Do you see any other > versions being loaded? Maybe from vendor/plugins? > _______________________________________________ > rspec-users mailing list > rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-usersDavid, That indeed was the problem. The gist from the original post shows the test run with --backtrace and it does show rspec-rails in vendor/ plugins (I didn''t see a version number tho). I did the following: rm -fr vendor/plugin/rspec-rails rm -fr vendor/plugin/rsecp sudo gem install rspec rspec-rails After which the spec no longer produces a NoMethodError and in fact passes. Thanks for taking the time to help me understand this, I was really stuck. Dan