separate comparison between the 4 different approaches to testing  and the description of mocks and Dependency injection