The ambiguity of implementation details: mocking, interactions and abstractions

Even if you don't use mocks, why do you use mocking?