Generally, when we want to get tests in place, there are two reasons to break dependencies: sensing and separation. 1. Sensing—We break dependencies to sense when we can’t access values our code computes. 2. Separation—We break dependencies to separate when we can’t even get a piece of code into a test harness to run.

