As I write tests, I use mocks to push off behavior that is difficult to test. This pattern helps me focus on the class under test and drives my design.
At what point can you push too far?
With TDD, its all about your tests, so anything that helps you write a test is the right thing to do. I am confident the tests drive a good design.
However, sometimes there are border cases. You may wonder if another class is excessive.
In this case ask a simple question: is this behavior the single responsibility of this class?
Usually the answer is no. The behavior I'm testing is combination of responsibilities and so, yeah, a mock is a good choice.