If I write code without tests I will end up with low quality code.
Worse - I'll discover that having written code without tests I've
naturally
ended up with a codebase that
resists being tested.
When this happens the codebase is not being 'malicious'.
That's just that way it is. That's exactly the way I grew it.
Testability isn't something that appears by magic.
If I want a codebase to be testable I have to write tests for it as I go along.
So that I find out just how testable it actually is and steer accordingly.
Sun Tzu put it very well in
The Art of War
when he wrote:
Plan for what is difficult while it is easy, do what is great while it is small.