When I use test fixtures to populate test data into mysql database I am
running into an unexpected behavior. Only columns explicitly defined in
the fixture is populated into the database. However, created_on,
created_by, updated_on, updated_by fields along with all fields
normally populated by observers are NULL. For example, I have a couple
fields that have their values calculated via observers. I want to test
that these calculations are performed correctly by the observer, so I
don't want to hard code their values in the fixture.
Has anyone else run into this issue? If so, how did you perform testing
of these fields? I realize that I could perform these tests without
fixtures by creating and saving the object. Behind the scenes, Active
Record populates all the fields in the expected manner. Then I could
find the saved record and assert_equal the expected calculations.
However this approach seems brittle and I rather use fixtures. It
doesn't seem (from the results) that I am getting that the fixtures
functionality uses Active Record to serialize data to mysql.