https://medium.com/mimecast-engineering/testing-the-legacy-code-how-to-break-dependencies-for-unit-tests-6a1039911156