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