I run my suite of tests, one test fails.
I run that one test file, no tests fail.
Something is carrying over between files and I can’t figure out what.
I tracked down the problem to the very line it’s occurring on, with
printouts before and after every call to make sure I know exactly what
is being reached.
In this spec I have 0 fixtures/mocks/stubs. The objects in this file
do not live anywhere outside of the file. This is a model spec and
I’m using all real objects to test it. In the “before” block I set up
some models, and in my spec itself I, in each test, make a couple
changes then call a model’s save method. That model has an
“after_create” method which calls a method in a child model that it
has. It is THIS method which is not being called. I have printouts
before and after everything, like I said, and the lines before and
after the method call work, which leads me to believe that method IS
getting called. However I have a “puts ‘foo’” at the top of that
method and it doesn’t get printed.
The object is not nil, and it has even been successfully saved
previously in the code, and all of its necessary attributes have been
set. Why on earth is it not getting called? Keep in mind, it DOES
get called if I run “spec” on that specific file. If I run it among
my other spec files (I’ve got lots) it DOES NOT get called.
I need some ideas on how to chase this one down? I stuck printouts
everywhere to track the issue down as narrowly as I have but I’m down
to a single line and it’s doing something I didn’t even know was
physically possible in this language. It seems I must be overlooking
something but I just can’t seem to see outside of the box on this
issue. Any ideas would be great, thanks!
Glenn