Wow!
"Testing" questions are bound to attract tons of opinions. And — lo and behold — you've gotten a ton of opinionsopinions. The truly great thing about questions like this (that draw lots of opinions) is the clarity with which they prove that there is no "one right way" to build software.
Let me give you a very light framework for makingunderstanding the mechanisms at play when implementing a discipline like this decision — and then I'll give you my own opinion. (One that I like to think is well-founded!)
I have a little more context in my original article here, but in summary: If you don't understand reasonably well how the behaviors you're taking (principle, pattern, practice, etc.) lead definitively to the higher-level outcome you need, there is virtually no way for you to correctly put the behaviors into practice — even if they are "the right behaviors."
Essentially, how you understanding a practice dictates the outcome and the mechanism by which the outcome is achieved (or not).