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

David Chelimsky
Thu, 21 Jan 2010 03:07:35 -0000

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