In a 2014 blog post, David Heinemeier Hansson expressed that changes to a system for the sole purpose of making tests easier or faster resulted in test-induced damage. While I agree with David's intent, I am not sure we agree on the details. He coined this term in response to what he felt was excessive application DI and test-driven development (TDD).
Personally, I take a pragmatic approach to both. They are tools. Please try them out. If they work for you, fantastic. If not, that's fine too. I have never been able to get TDD to be as productive for me as other methods. Generally, I will write my function, at least the happy path, and then apply my tests. Then I refactor and clean.