I find there are very few situations where mocks are actually desired.
One of them is sometimes when you need to test infrastructure and the upstream provider does not provide a good way for that.
Instead, I much prefer using in-memory fakes — they read much better and are much easier to maintain.