Complexity and Unit Testing
The problem with unit testing:
A simple, intuitive architecture has less need for unit tests. It’s the fundamental advantage of good abstractions.
Good code needs few unit tests:
Lots of unit tests are a symptom of an architecture with complex and highly stateful abstractions, which, in turn, are a sign of a low quality architecture.