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.