@grmpyprogrammer Some unit tests tends to lock-in the implementation making refactoring difficult.
Personally, I only substitute infrastructure classes with in memory implementations in my tests instead of mocks for brevity and to facilitate refactoring with some success, but I still have to manually inject dependencies in the setUp phase, which can be tedious in some cases. I haven't found a solution to that issue appart from using a service container which can seriously hurt performances.