Earlier quoted context omitted.
Making software harder to read, write, and maintain in the name of making unit tests easier to read, write, and maintain is putting the cart in front of the horse.
The age old TDD dilemma, that treats the test suite as first class, rather than the end user's experience.
I find it humorous that so many programmers still can't see past the end of their nose when it comes to designing code for application testing.
An application is deliverable. That means testable and deployable with a consistent, repeatable process. Anything short of that is not an application, it's a prototype.
Yes, it takes longer to deliver up front, but it removes the long tail of maintenance. Getting a low quality product out of the door makes for a bad user experience and garners you a bad reputation.
The test suite _should_ be a first class citizen.