Suppose I\'ve decided to write a large application in C, or any other procedural programming language. It has functions with call-dependencies that look like this:
A only needs to call B1 and B2. It does not need to know about anything at the C level.
A
B1
B2
You could inject a different dummy versions of functions B1 and B2 into A for the purpose of testing A.
This isolates A from needing the whole structure and means you can test each function in isolation.