The point of how singletons are handled in Spring is that there is no code in the singleton limiting how it is called, it's just a POJO. Spring is in charge of making sure everyone gets the same instance of it. That means if you want to write a unit test for it your test doesn't have to use Spring at all, the test can instantiate the singleton like any other POJO as part of the test setup process, and the test code can plug in mocks for its dependencies.
It's the code in the singleton enforcing its singleton-ness that makes it hard to test, with Spring that's no longer an issue.