- Classes always talk to other classes.
- The problem comes up when you try to unit test such classes. (Unit tests test little chunks of code in isolation).
- Mocks allow us to replace referenced objects with mock ones that are just like the real one. (Workalikes)
- Enterprises especially need mock testing because in enterprises often use systems that are expensive to use (performance/financially/license wise, etc...)
- Mocks are also easy to interrogate. Mocks record what happens to them, so we can verify that the integration is correct.