Have a look at the Google Testing blog:
- Using dependency injection to avoid singletons
- Singletons are Pathological Liars
- Root Cause of Singletons
- Where have all the Singletons Gone?
- Clean Code Talks – Global State and Singletons
- Dependency Injection.
And also:
Finally, Misko Hevery wrote a guide on his blog: Writing Testable Code.