Why your application should never know it's being tested and why mocks are a code smell - Zoo Testing