Unit Testing Denial Pattern #1: Pretending the test is no longer valid
Today was both a good day for e and a bad day for me. Good day because I managed to get a full suite of tests that were somehow failing to work again after a refactoring that got out of hand. Bad - because out of all the tests, one of them failed.
Here's the part I'm ashamed of:
I was working with a pair, and when we both looked at the failing test, I went out and said "Oh, I think this test is no longer valid. It may just need to be removed". We both knew it was still a valid test, that for some reason was failing. But I was on such a role with making everything work, that test was feeling like a thorn in my thumb that I wanted to get rid of.
It was a hard few minutes to convince ourselves to debug through the test and realize what the problem may be
So, denial pattern #1:
Forces: You just want to get on with your code, with only one or two tests that are "ruining the party"
Behavior:
Instead of fixing them debugging them or accepting that you might not have fixed everything, you try to tell yourself that the tests may no longer be valid without actually checking your assumption, which you really wish would be true.
How to avoid: work in pairs. It's harder to ignore a problem (or at least more awkward) with 4 eyes staring at it.