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?
end
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.
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.