It's like a binary search tree (in structure), but better... In the hierarchical graph, nodes can have multiple parents and they can connect to their siblings as well. I'm going to talk about Directed Acyclical Graphs (DAGs)...
Wiring up the Controller is *involved* ... (in the integration test) ...
It's simple in the unit test... cause we mock everything below the top layer
But the integration test is where it's at:
The integration tests the interaction of the LAYERS... this is where you find out if you have a stupid circular dependency in your service layer :)
You should get a hierarchical graph: a child can have multiple parents, and you can connect to your siblings... but there can be no circles.
Without integrating your system, you can't know that you got your layers correct. Integrating your system, in a test, just means wiring up the disparate components... having them interact with each other.
Sidebar: What is a Software Application?
An app is not just that thing on your phone. A software application is a general concept: