unit testing and activerecord (mis)behavior

In my active record model I have declared a 'before_save' callback, that populates other fields before saving the data. However I am finding all my unit test cases are breaking because it seems the 'before_save' callback is not getting called during a unit test run? In fact I have to provide the missing filed in unit test fixture yml file.

How can I make the model behave the same in the unit test run as it does when I create and save a model object from the rails console?

In my active record model I have declared a 'before_save' callback, that populates other fields before saving the data. However I am finding all my unit test cases are breaking because it seems the 'before_save' callback is not getting called during a unit test run? In fact I have to provide the missing filed in unit test fixture yml file.

Do you mean it is not calling the filter when loading data from the fixture file into the db before the test starts? If so I believe that is as it should be. Your code is not run when setting up prior to running the test.

If you mean that the filter is not being called when save is called from your controller during the test then that is a problem, the filter should be called in this case.

Colin

Rajinder Yadav wrote:

In my active record model I have declared a 'before_save' callback, that populates other fields before saving the data. However I am finding all my unit test cases are breaking because it seems the 'before_save' callback is not getting called during a unit test run? In fact I have to provide the missing filed in unit test fixture yml file.

How can I make the model behave the same in the unit test run as it does when I create and save a model object from the rails console?

ok the answer just came to me, what I need to do is a post rather than a create on the model, make perfect sense!