I could be going mad and missing something really obvious here but I'm getting an unexpected result from the following.
The schema:
The model:Code:create_table :services, :force => true do |t| t.column :id, :primary_key t.column :name, :string, :ilmit => 5, :null => false t.column :port, :integer, :null => false t.column :status, :string end
The unit tests:Code:class Service < ActiveRecord::Base validates_presence_of :name, :port, :status end
The first test passes fine, but the second test is failing on that last assertion with:Code:class ServiceTest < Test::Unit::TestCase def test_new_service @service = Service.new @ service.name = 'www' @service.port = 80 @service.status = 'Unknown' assert @service.save end def test_invalid_service @service = Service.new assert !@ service.save assert_equal "can't be blank", @service.errors['name'] assert_equal "can't be blank", @service.errors['status'] assert_equal "can't be blank", @service.errors ['port'] end end
Any idea why the validate_presence_of method isn't picking up theCode:=> <"can't be blank"> expected but was => <nil>.ort column and providing an appropriate error message like it is with name/status? Its not a reserved word or something is it?
To aid debugging, here is the output of:
As you can see, no sign of my error message for the port column.Code:@service.errors.each_full { |m| puts m } => Name can't be blank => Status can't be blank



ort column and providing an appropriate error message like it is with name/status? Its not a reserved word or something is it?

Bookmarks