问题 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 | +-------------+ | | B1 B2 | | +------+ +------+ | | | | C11 C12 C21 C22 Obviously, unit-testing the leaves functions, C11, C12, C21, and C22 is very easy: Setup the inputs, invoke the functions, assert the outputs. But what is the proper strategy to enable good unit-testing for B1, B2 and A? Would Dependency Injection suggest