의존성을 주입하는 또 다른 이점은 테스트 가능성이 향상된다는 것이다. 개발자는 의존성의 목(mock) 객체를 쉽게 주입할 수 있다. 특히 의존성의 계산 비용이 크거나 애플리케이션 범위를 넘어서는 경우 목이 쓸모 있다. 테스트를 위한 디자인에 대해서는 여기서 다루지 않겠지만(자세한 내용은 내 다른 책 『이펙티브 소프트웨어 테스팅(Effective Software Testing: A Developer’s Guide)』(제이펍, 2023)을 참고하라1), 클래스에 의존성을 주입할 수 있게 하면 자연스럽게 테스트 가능성을 얻을 수 있다. 의존성 주입의 가장 좋은 점은 구현이 간단하다는 것이다. 클래스의 의존성을 직접 인스턴스화하지 않고, 이를 받을 수 있는 생성자만 만들면 된다.
의존성을 하드 코딩하고 주입을 허용하지 않는 방식에는 이점이 거의 없다. 과거에는 높은 성능이 필요한 애플리케이션을 개발하는 팀이 의존성 주입의 계산 비용 때문에 이를 피하는 경우가 있었다. 그러나 이런 우려는 대부분 시대에 뒤떨어진 것이다.