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