Hi, I recently migrated from classic rails testing to Rspec, so I am pretty new to the framework and still learning. I am getting weird errors on an ActiveRecord model test, here is the basic class model definition: class Size < ActiveRecord::Base has_many :quantities, :dependent => :destroy validates_presence_of :name validates_uniqueness_of :name, :case_sensitive => false end and this is the faulty spec: it ''new size should have an error on name'' do Size.new.should have(1).error_on(:name) end the red response is: ''new size should have an error on name'' FAILED expected 1 error on :name, got 0 if I change the spec to read like this: Size.new.should have(:no).error_on(:name) I still get a red response: ''new size should have an error on name'' FAILED expected 0 error on :name, got 1 Guess the problem is the model class name (Size) as I don''t get such weird stuff from other classes... can I fix this somehow? Thanks Andrea
On 23 Mar, 10:41, andrea <longhiand... at gmail.com> wrote: [cut] BTW I am using rails 2.3.2, rspec and rails-spec version 1.2.0 Andrea
On Mon, Mar 23, 2009 at 4:41 AM, andrea <longhiandrea at gmail.com> wrote:> Hi, > I recently migrated from classic rails testing to Rspec, so I am > pretty new to the framework and still learning. I am getting weird > errors on an ActiveRecord model test, here is the basic class model > definition: > > class Size < ActiveRecord::Base > ?has_many :quantities, :dependent => :destroy > ?validates_presence_of :name > ?validates_uniqueness_of :name, :case_sensitive => false > end > > and this is the faulty spec: > ?it ''new size should have an error on name'' do > ? ?Size.new.should have(1).error_on(:name) > ?end > > the red response is: > ?''new size should have an error on name'' FAILED > ?expected 1 error on :name, got 0 > > if I change the spec to read like this: > ?Size.new.should have(:no).error_on(:name) > > I still get a red response: > ?''new size should have an error on name'' FAILED > ?expected 0 error on :name, got 1 > > Guess the problem is the model class name (Size) as I don''t get such > weird stuff from other classes... can I fix this somehow?Hi Andrea, I just tried this myself (because I wanted to see if the class name was really the problem) and "Size.new.should have(1).error_on(:name)" passed for me. I also tried "Size.new.should have(:no).errors_on(:name)" and that failed correctly. So something else is amiss in this case. If this persists, please submit a bug report to http://rspec.lighthouseapp.com and include a zipped up app that I can run to see the problem. Thanks, David> > Thanks > > Andrea > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
andrea wrote:> Hi, > I recently migrated from classic rails testing to Rspec, so I am > pretty new to the framework and still learning. I am getting weird > errors on an ActiveRecord model test, here is the basic class model > definition: > > class Size < ActiveRecord::Base > has_many :quantities, :dependent => :destroy > validates_presence_of :name > validates_uniqueness_of :name, :case_sensitive => false > end > > and this is the faulty spec: > it ''new size should have an error on name'' do > Size.new.should have(1).error_on(:name) > end > > the red response is: > ''new size should have an error on name'' FAILED > expected 1 error on :name, got 0 > > if I change the spec to read like this: > Size.new.should have(:no).error_on(:name) >It should be have(0).errors_on(:name), AFAIK> I still get a red response: > ''new size should have an error on name'' FAILED > expected 0 error on :name, got 1 > > Guess the problem is the model class name (Size) as I don''t get such > weird stuff from other classes... can I fix this somehow? > > Thanks > > Andrea > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
On Mon, Mar 23, 2009 at 9:45 AM, Scott Taylor <scott at railsnewbie.com> wrote:> andrea wrote: >> >> Hi, >> I recently migrated from classic rails testing to Rspec, so I am >> pretty new to the framework and still learning. I am getting weird >> errors on an ActiveRecord model test, here is the basic class model >> definition: >> >> class Size < ActiveRecord::Base >> ?has_many :quantities, :dependent => :destroy >> ?validates_presence_of :name >> ?validates_uniqueness_of :name, :case_sensitive => false >> end >> >> and this is the faulty spec: >> ?it ''new size should have an error on name'' do >> ? ?Size.new.should have(1).error_on(:name) >> ?end >> >> the red response is: >> ?''new size should have an error on name'' FAILED >> ?expected 1 error on :name, got 0 >> >> if I change the spec to read like this: >> ?Size.new.should have(:no).error_on(:name) >> > > It should be have(0).errors_on(:name), AFAIKhave(:no).errors_on ... actually works as advertised (converts to 0).> >> I still get a red response: >> ?''new size should have an error on name'' FAILED >> ?expected 0 error on :name, got 1 >> >> Guess the problem is the model class name (Size) as I don''t get such >> weird stuff from other classes... can I fix this somehow? >> >> Thanks >> >> Andrea >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
On 23 Mar, 13:10, David Chelimsky <dchelim... at gmail.com> wrote:> If this persists, please submit a bug report tohttp://rspec.lighthouseapp.comand include a zipped up app that I can > run to see the problem.Thanks Dave, now everything works as expected, but I still don''t know what was the problem. First I duplicated the app, tested it and got the same bad results as the original one. Then I started to remove stuff from the duplicated app until I got the Size model specs pass. This happened when I removed the Size controller specs file. Weird. I went back to the original app, cut the code from the Size controller specs file and run the specs.. this time everything passed. I pasted back the content to the Size controller file, saved and again all specs run as they should... I feel really confused :-) Regards Andrea