[rspec-users] [rails] undefined method `handling_predicate!'

DanS dansteinicke at gmail.com
Thu Jan 21 17:38:01 EST 2010



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-users

David,

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


More information about the rspec-users mailing list