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?


Kind Regards,
Rajinder Y.

Rajinder Y. 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!


Kind Regards,
Rajinder Y.

On 14 March 2010 12:08, Rajinder Y. [email protected] 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.

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs