Dave
2010-Feb-24 08:23 UTC
[rspec-users] Rspec + Shoulda + FactoryGirl = undefined method `reflect_on_association''
I have Rspec + Shoulda + FactoryGirl and I am receiving the following
error when attempting to call Shoulda''s have_many or belong_to
methods. All Shoulda methods used in the "validations" group work
fine:
> NoMethodError in ''A Project
> associations should When you call a
> matcher in an example without a
> String, like this:
>
> specify { object.should matcher }
>
> or this:
>
> it { should matcher }
>
> RSpec expects the matcher to have a
> #description method. You should either add a String to the
example this
> matcher is being used in, or give it a
> description method. Then you won''t
> have to suffer this lengthy warning
> again. '' undefined method
> `reflect_on_association'' for
> #<Project:0x34d8624> /vendor/plugins/active_matchers/lib/
matchers/association_matcher.rb:37:in
> `confirm_association''
> /vendor/plugins/active_matchers/lib/matchers/
association_matcher.rb:36:in
> `each''
> /vendor/plugins/active_matchers/lib/matchers/
association_matcher.rb:36:in
> `confirm_association''
> /vendor/plugins/active_matchers/lib/matchers/
association_matcher.rb:11:in
> `matches?''
> ./spec/models/project_spec.rb:7:
Thanks in advance
spec/spec_helper.rb
=================================================================
require ''shoulda''
spec/models/project_spec.rb
=================================================================
require File.dirname(__FILE__) + ''/../spec_helper''
describe "A Project" do
describe "associations" do
subject { Factory(:project) }
it { should have_many(:tasks) }
it { should belong_to(:project_status) }
end
describe "validations" do
subject { Factory(:project) }
it { should validate_presence_of(:name) }
it { should validate_uniqueness_of(:name).case_insensitive }
it { should allow_mass_assignment_of(:name) }
end
end
David Chelimsky
2010-Feb-24 14:15 UTC
[rspec-users] Rspec + Shoulda + FactoryGirl = undefined method `reflect_on_association''
On Wed, Feb 24, 2010 at 2:23 AM, Dave <david.mh.tong at gmail.com> wrote:> I have Rspec + Shoulda + FactoryGirl and I am receiving the following > error when attempting to call Shoulda''s have_many or belong_to > methods. All Shoulda methods used in the "validations" group work > fine: > > ? ?> ? NoMethodError in ''A Project > ? ?> associations should When you call a > ? ?> matcher in an example without a > ? ?> String, like this: > ? ?> > ? ?> ? specify { object.should matcher } > ? ?> > ? ?> ? or this: > ? ?> > ? ?> ? it { should matcher } > ? ?> > ? ?> ? RSpec expects the matcher to have a > ? ?> #description method. You should either ? add a String to the > example this > ? ?> matcher is being used in, or give it a > ? ?> description method. Then you won''t > ? ?> have to suffer this lengthy warning > ? ?> again. ? '' ? undefined method > ? ?> `reflect_on_association'' for > ? ?> #<Project:0x34d8624> ? /vendor/plugins/active_matchers/lib/ > matchers/association_matcher.rb:37:inWhat''s active_matchers? I don''t think that''s part of rspec, shoulda, or factory_girl.> ? ?> `confirm_association'' > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > association_matcher.rb:36:in > ? ?> `each'' > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > association_matcher.rb:36:in > ? ?> `confirm_association'' > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > association_matcher.rb:11:in > ? ?> `matches?'' > ? ?> ./spec/models/project_spec.rb:7: > > Thanks in advance > > spec/spec_helper.rb > =================================================================> > ? ?require ''shoulda'' > > spec/models/project_spec.rb > =================================================================> > ? ?require File.dirname(__FILE__) + ''/../spec_helper'' > > ? ?describe "A Project" do > ? ? ?describe "associations" do > > ? ? ? ?subject { Factory(:project) } > > ? ? ? ?it { should have_many(:tasks) } > ? ? ? ?it { should belong_to(:project_status) } > ? ? ?end > > ? ? ?describe "validations" do > ? ? ? ?subject { Factory(:project) } > > ? ? ? ?it { should validate_presence_of(:name) } > > ? ? ? ?it { should validate_uniqueness_of(:name).case_insensitive } > > ? ? ? ?it { should allow_mass_assignment_of(:name) } > ? ? ?end > ? ?end > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
Dave
2010-Feb-25 12:52 UTC
[rspec-users] [SOLVED] Rspec + Shoulda + FactoryGirl = undefined method `reflect_on_association''
Thank you so much. I have been staring at this for way too long and missed the obvious. I had a redundant active_matchers plugin that was conflicting with shoulda. Cheers, Dave On Feb 25, 1:15?am, David Chelimsky <dchelim... at gmail.com> wrote:> On Wed, Feb 24, 2010 at 2:23 AM, Dave <david.mh.t... at gmail.com> wrote: > > I have Rspec + Shoulda + FactoryGirl and I am receiving the following > > error when attempting to call Shoulda''s have_many or belong_to > > methods. All Shoulda methods used in the "validations" group work > > fine: > > > ? ?> ? NoMethodError in ''A Project > > ? ?> associations should When you call a > > ? ?> matcher in an example without a > > ? ?> String, like this: > > ? ?> > > ? ?> ? specify { object.should matcher } > > ? ?> > > ? ?> ? or this: > > ? ?> > > ? ?> ? it { should matcher } > > ? ?> > > ? ?> ? RSpec expects the matcher to have a > > ? ?> #description method. You should either ? add a String to the > > example this > > ? ?> matcher is being used in, or give it a > > ? ?> description method. Then you won''t > > ? ?> have to suffer this lengthy warning > > ? ?> again. ? '' ? undefined method > > ? ?> `reflect_on_association'' for > > ? ?> #<Project:0x34d8624> ? /vendor/plugins/active_matchers/lib/ > > matchers/association_matcher.rb:37:in > > What''s active_matchers? I don''t think that''s part of rspec, shoulda, > or factory_girl. > > > > > ? ?> `confirm_association'' > > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > > association_matcher.rb:36:in > > ? ?> `each'' > > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > > association_matcher.rb:36:in > > ? ?> `confirm_association'' > > ? ?> /vendor/plugins/active_matchers/lib/matchers/ > > association_matcher.rb:11:in > > ? ?> `matches?'' > > ? ?> ./spec/models/project_spec.rb:7: > > > Thanks in advance > > > spec/spec_helper.rb > > =================================================================> > > ? ?require ''shoulda'' > > > spec/models/project_spec.rb > > =================================================================> > > ? ?require File.dirname(__FILE__) + ''/../spec_helper'' > > > ? ?describe "A Project" do > > ? ? ?describe "associations" do > > > ? ? ? ?subject { Factory(:project) } > > > ? ? ? ?it { should have_many(:tasks) } > > ? ? ? ?it { should belong_to(:project_status) } > > ? ? ?end > > > ? ? ?describe "validations" do > > ? ? ? ?subject { Factory(:project) } > > > ? ? ? ?it { should validate_presence_of(:name) } > > > ? ? ? ?it { should validate_uniqueness_of(:name).case_insensitive } > > > ? ? ? ?it { should allow_mass_assignment_of(:name) } > > ? ? ?end > > ? ?end > > _______________________________________________ > > rspec-users mailing list > > rspec-us... at rubyforge.org > >http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users