My 2 cents:
- It requires some education and discipline, but new graduates already come with the proper knowledge.
- Tests overhead can be reduced with better tools and this is happening also (refactoring etc.)
So, it's just a matter of time.
There's the Martin-Coplien debate in which Bob Martin asserts that:
"nowadays it is irresponsible for a developer to ship a line of code he has not executed in a unit test."
[http://www.infoq.com/interviews/coplien-martin-tdd]