It's not so much that you expect them to change, but when developing with unittests it's a necessity. And it makes it possible to have the right degree of in memory component and integration testing. It forces you to think about the interface with that dependency, and ask the right questions instead of potentially using some other domains abstraction a lot. It's not different than thinking in modular design.
The added benefit is that when, not if, you have to replace some dependency it's simple.
The added benefit is that when, not if, you have to replace some dependency it's simple.