Validations problem

Hello champs,

I have a validation in model ABC and that is:-
validates_presence_of :employee_id
Now the record should not be saved without the presence of employee_id
right. But now i wrote a test case like this:-

def test_should_not_save_abcModel_without_employee_id
  abc = Abc.new(:name => "ABC Group")
  assert abc.save, "Saving the record without employee_id"
end

But still this record gets saved in database. Why so .. ? What i am
doing wrong here.. My database migrations for employee_id column as
well:-

t.integer :employee_id, :null => false

it is impossible!!

there is something wrong with model or database

Anthony wrote:

it is impossible!!

Hey i know that is impossible.. That's why i am asking you people.. i
have posted my migrations and validations here as well..
Can you please look at them and tell me ..

In which file is this test written and how are you running it?

Also, these kinds of tests are not very useful because
they try to test the framework, ActiveRecord in this case.

Tests should target the intended behavior of your application.

You should remove :null => false. With it, you have a 0 in any new
record, so validates_presence_of :employee_id will return true.

Are you somehow inserting a blank in your model with a before_save or
similar callback? What is the value of the column in the created
record? Are you the only one with access to the DB tables? Could
somebody have changed the column to allow now null values?