Sometimes when I feel that the dependency is too "artificial", that the design smells but I am still not sure of the right direction, I just use monkey patching or isolation frameworks like PowerMock, TypeMock or any other to do the trick for me. Am not saying is recommended technique but as an intermediate step, it helps me sometimes. Thanks for a great article :-)